some utility stuff
move utilities around
nested nodes working