Have provided a basic spec and implementation for touch. This might not actually be correctly implemented.