Hardware interface rework.

Refs #45