This is a reimplementation of 7c96e31f but in a declarative way, that also does not break bindings unnecessarily (bringing delegates one step closer to be reusable).