This probably needs a better name than onTouch.