Implement concurrency and a finalState method