The role of heterogeneities in faulting