Separate node model out into its own file