Hardware interface rework

Refs #45