changing iteration up a little
a little bit of documentation
append checks that the key being added is after the last existing key
append takes an optional time