update so that each state knows it's own arguments