Rebased onto latest rust-team branch and removed all the duplicated work. - Jordan