I have been reading things like the node source to figure this out