https://medium.com/@rohanpatel096/getting-started-with-java-a-guide-to-setting-up-your-development-environment-80507cce90ac