allow overriding accessors while keeping `super` valid. this happens by creating the delegating accessors in a module which is then included. this allows calling super in users overriding method.