refactor and update versions