added a better versioning system