all the pieces are there but some big mistakes too.  Need to rethink some of the data strucutres