Implementing the model