more correct version generation