Implemented basic hardware abstraction layer