Refactoring

basically extract code to concerns