Added some code for accurately handling touch
events but it's pretty broken right now.