See SingleResponsibilityPrinciple