Cleanup lots of stuff, use classes

Instead of having a **huge** `define_microscope_scopes` method, we now have a cleaner, more modular setup.