cleaned up hardware coupling needs API to config