Experiment refactor

@aransfor 

I broke scan_methods up so that each class is in a separate file.  The classes are all imported into scan_methods.py so legacy code should still work.