don't evaluate apply to last until the node is transormed
with doesn't create its own reference unless necessary