https://blog.liquidware.com/2016/03/04/single-application-layer-methodology-is-best/