this is a pretty complete first draft I think.