better comparison rules