Moving logic in to separate classes
refactoring