refactoring, seperate fat methods