reduce code duplication
6 files changed