rework for BSD