Use foward declaration to remove the inlcude pragha.h to a lot of headers.