moved node into its own file