TODO update.
Relax the dependencies on array and containers.
Add a .gitignore.