adding some fault-tolerance