combine those small functions with mike's driver