made main method optional