adopt semantic versioning