start refactoring how runs are handled