futzing with wrapper abstraction again