is this missing a `wasAdded = NO;`? looks like if this step fails then the return value of the method would still be `YES`