merged from vinh