Added comments to functions
Added iterator and tests
Renamed test variables
Added test: Verify head and tail haven't changed after running iterator