do not depend on nave, use nvm