Add ComponentState, can write state transition as method chain