initial stab: not enough levels of indirection yet