entry point as js