Fixed Version handling. Now throws exceptions on collisions and correctly determines new version if left blank/null