Software Design/Separate description of effectiful system from interpretation

Related

 * Create pure functions