Updated with driver code - still needs work