invoke now calls validate! before run