older main driver, temporary
fixed main driver