Refactor and add a runner module