implemented my notes, more testing needed