A Hierarchical Program Structure for Concurrent Fault Tolerant Software