following semver to avoid breaking the existing clients