Whole model is commented and tested.