Restructure GenerictNode and the way it is allocated