fleshed out task driver interface