pass over algorithm design and patterns