updated entry point