Updated OOP with iterators, decorators and func. prog.