added optional site url param to run()