almost finished converting to o-o fault implementation