only impl inherits observer