added fault tolerance