V2 restructured

I added some unit tests to cover some bases more thoroughly.
It shouldn't run disposed handlers.
It should throw if 'how many' isNaN
It should throw if the handler doesn't have an apply.
If your app doesn't have a dispose(), it should not throw an error.