Replace observers with callbacks

Hey guys, finally I found time to do it. What do you think about it?
Oh yeah, it totally makes sense