resolve the problem of header file including recursively