add Time class
modify the math function
rename PredefineType.h to PreDeclare.h
use const_reference in math class
add attribute get function to node
fix unsigned compare warning
use reference of shared_ptr
use typedef to reduce std::shared_ptr