https://medium.com/@nathanbyers13/best-practices-for-organizing-and-structuring-a-node-js-project-95af12211aac