chaining delegation can be confusing and error prone