Revamp classes.  Get rid of prototypes and make easier to read.  Detabify.
Support for touch devices (not well tested).