Create events

You've done most of the work @snorrid but I'm just cleaning stuff up and learning a bit of angular. Please comment if you'd like to do things differently. I'm not yet on how testing works in angular but that's next on my list and I'll make another PR with that work.

Until then I've tested this manually and it works (just take my word for it! :laughing:)

Closes #22.