refactoring moving responsibilities