I also changed a lot of the version comparison logic to be more sensible by using comparable constants instead of always checking multiple strings.