add some touch logic