beginning extensive board driver cleanup/rewrite