improve code reuse