merged from master & add test