added tunable EPSILON parameter