Christ almighty I hate non-DRY versioning