setup entry point