fixed main entry point