assignment implmented