-huge reorganization of classes and their roles
-added listener stuff, not tested yet