add registerExtension & support json