Initial checkin. There is a lot of work to do to clean this code up, but I wanted to get the initial working code tracked.