Added main program interface