modified entry point