U: refactor adapter