when calling increment() in touch(), we should deal with fractions