Major refactoring to support enter/change/leave events. Also did some work to clean up some of the code
Adding jshintrc