remove unneeded overrides by pushing Writer node creation methods up into Writer trait, mark all Writer node classes sealed