there's a lot of code below that could be shared with other temp driver implementations.. could it be factored out?