Preferred this all in one header and one implementation file; even though harness is BIG