Hung proto -> Upstream merge

I'm going to merge everything Hung did back to upstream.