added some notes to make sense