Refactoring `observer.decorate()` to implement `utility.property()`