Behavior refactor