restructure and add v2