Node main

Some things aren't stable but many changes are stable on this branch, going to continue on this branch after merge.