added some notes to help break the problem down