refined etirator
added more tests
minor changes