create core models & optimised the product model