not using empty strings for versions