first pass, nowhere near done