merged from Vinh