Separate from Base a EventHandler and a DesktopDrawer
Add unit testing
Add more documentation and more examples