refactored re-typed node construction