First scrubbed version. BH specifics removed, getting ready for porting
in generic versions.