modified file structure
modify build script to use precompile header
split to multiple header files
split source files