more formal almostequal method