Turned `Observer` from class to interfaces.