begin model inplementation