reworking the model