contract comparison function, start on normalise