Incrementally added functionality

Which was definitely not the way to go.  Many things broke.