separate the chisel implemetation code from the chisel API code. The api is getting big enough to justify sitting by itself.