rename run to _run so that it doesn't show up as a public member