Add tests, documentation and modules :wrench: