try to get put_vnode to work, fix other small bugs