add touch logic
fix tests