Rework how versions are defined