if possible I would cache the whole_fault_surface