1. A method for defining a keypad on a touch sensitive surface, comprising: receiving a series of coordinates of a series of user touches on the touch sensitive surface; correlating a plurality of keys with the received series of coordinates; determining an average of received coordinates correlated with each of the plurality of keys, wherein determining the average of received coordinates correlated with each of the plurality of keys comprises: calculating a variability of key-strike locations for each of the plurality of keys; determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued; saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and generating an image of a virtual keypad using the keypad layout data.