# Single Responsibility Principle
A code module should only ever have a single responsibility. The only thing that should have the potential to change a code module is a specification change (of that, limited, responsibility).
This is similar to the unix philosophy that states that a utility should "do one thing and do it well"