added notes to help disect the process