WIP, refactor driver