refactor versions2