Added abstract obstacle class and singleton (to prep for layers)