Initial checkin. mostly working.