Laid the groundwork for event handling, added event callbacks.  Also fixed .gitignore file so that it actually does what I said it does.  Oops.