Implementing the Model