move TouchRepeatListener to library