generic graph + nodes