refactoring class splitting