Add Obstruction abstract class and subclasses