add xconfigs.h
add cache support