Replaced Behavior interface with AbstractBehavior to prevent incorrect API usage.