Use a tuple instead of explicit state struct