Adding some basic event observer pattern functionality