controller state typechecks
controller and state typecheck, data update is not quite done yet