initial touch implementation