add semantic versioning

functionality is almost complete, still let's give this rc status