Public main method