further progress toward multi-level locking; still doesn't compile