pretty major update -- changed the return value of nl.run