I feel this fn belongs in an abstract spec class
you are c&p it everywhere, the only change is the type of node that gets added