implemented the CellStates