state iteration