architecture in place, now to flesh out the classes
fixed merge