attempt at making GNode generic. broken.
working.