created an abstraction for Hardware so I can switch back and forth between the mock logic and real hardware