started work on better hardware abstraction