implemented common gesture library