inplement some method