add apply method