reorganize native extension