Rework some Node functionality.
This will probably be my last commit for now.
Merge remote.