program base
refactoring some gesture handling functionality into a 'Program' module, for the capability to switch between input modes