Almost done, still need fault tolerance