ply level 2 refactor, adding framework for L3 gesturescommitting as requested
scripted update of code from master at cc4d499 ply level 2 refactor, adding framework for L3 gesturescommitting as requested