started creating subclasses

made a generic behavior and a simple state. also tweaked steering
behaviors and stripped base classes down to virtual methods to help
avoid header link hell