add viva layer with graph, gen and serialize functionality