https://medium.com/@bhuvana.vijayakumar21/object-oriented-programming-in-java-a-quick-guide-432805128eb0