added interface to communicate with hardware