used internally by deepin