merged from interface