more robust Obstruction base class