Script entrypoint