more sophisticated versioning