cleaned up code in the main listener for now, cant build yet, so this may not work, plz test. also, i'll get to the other classes later, and then finish the library thing