simplyfy iterators; fix a bug in Slice