added the main method