Replace observers with callbacks

Hey guys, finally I found time to do it. What do you think about it?
:grinning: