simplified entrypoint