Feature/behavior refactoring