added Hardware Abstractions