https://medium.com/codecastpublication/understanding-basic-coding-terminology-more-basics-e44c614583f1