use semantic versioning