move run into it's own module