add semver validation