finished refactor.  Still need major cleanup and testing. :)
stubbed out audio. :)