refactoring; more appropriate concern separation