fix #2, add semver support