main method finished