refactored behaviors