WIP Class based touch
Refactor and fix tests