solve the problem of namespace pollution,
add include guard
destructor is available