restructured the model