not need to do `version_compare` twice?