block obstacles and refactoring

block obstacles and refactoring to improve legibility, removal of some
unused properties and methods