new version with hardware declaration/ctl, work in progress