Initial checkin, still needs documentation.