Add semantic versioning
Add more docstring