add versioning, add some documentation