done main method