removed some more confusing indirection