Reflect std::shared_ptr nature of Node on initializers and remove constant members in nodes. Add some commentaries.