Replace observers with callbacks

Hey guys, finally I found time to do it. What do you think about it?
I agree with @toothfairy. I think.