Some cool stuff
Add event handling and all the niceties