rework for reuse