added version comparing function(s)