Added the main program interface