Revisited model.
Reimplmented tests.