Behavior tree framework