Introduce Observer base class and guard for calls after complete/error