feat: change implementation of taskList from HashMap into TreeMap
feat: write task list to file when it is changed
test: add JUnit to classpath
feat: add exceptions when inputs are invalid
feat<Magic8Task>: add input validation
test<Magic8Task>: add tests