add state checkers. update view