A few changes in model, and many many many test added