substitude mothod added