add hamcrest; implement iterator.remove