Large commit, fully functional with working unittests

Need to commit more often...
TODO: Multiple argument events, better javadoc.