only need to invoke when passing args