finished _run method refactor