classical code reuse pattern #2