- [ ] Reduce coupling between modules. - [ ] Create a reasonable testing infrastructure, - [ ] Documentation. - [ ] Examples.