first pass

Probably I should look at it again