added better version_comparison