basic touch driver, still a bit glitchy. slight refactoring