Driver refactor