added semantic versioning