this should work to handle inserting into the middle of the list