messy checkpoint
first pass