U: refactor adater