Simple event interface, sutable for prototype mixin