Updated with more tests and made tests modular

I don't think kallback is needed. callback is still accessible in the closure.