adapt some extention