Feature/refactoring