AbstractDevice class kinda works now. Need to add the ability to specify parameters when calling processInput()