https://medium.com/@loaymorad11/mastering-ruby-a-comprehensive-guide-to-the-dynamic-programming-language-db3d068f538c