https://jignesh-rathod.medium.com/mastering-java-a-complete-guide-to-fundamentals-and-control-flow-1096d3dc8343