added epsilonEquals method