Observer :: added __invoke() so that observers are now callable (and can wrap each other). Docs.