See https://speakerdeck.com/chriseidhof/lighter-view-controllers-2 and http://bendyworks.com/geekville/articles/2014/2/single-responsibility-principle-ios