Merge pull request #2 from bmorwood/core

Some more core improvements or abstractions
Merge branch 'master' into core
changing all current events to use new pattern and implementing some additional logic