finished step 5, added main method