Text this: A multi-staged software design approach for fault tolerance /