added more tests, implemented erase, updated iterators, changed some code