Model specification(refactored)