working on refactoring some gesture stuff into Program, not quite done yet