refactor completed
branch code now working, still need to write tests
misc
Merge branch 'cleanup_class'