Rewrite the touch system to work at a lower level