Add validation framework + abstract crud controller