Created hierarchy for InputSource

use strategy pattern to switch between input sources (i.e.: popups vs
console)