simplify by requiring object-subscribe