hardware abstraction II