some tests work
Added proper exception firing and callbacks calling