pushing small changes preparing iterator final ver