apply and call method