use versioncmp() is more robust