start replcaing Generator with Iterator where possible