https://medium.com/codex/10-best-practices-for-writing-clean-and-efficient-code-in-swift-4ac9c4217254