avoidance is its own class that is used by the robot directly