complete custom gesture recognizer