Obstacle logic encapsulated in root class.