In an attempt to understand how drivers work, I am writing my own