cleaner and more flexible version schemas