improved comparing