added another layer of indirection for creating qnodes; can use for recycling nodes