first pass, broken