change headerguard. fix bug.
split file.modify namespace. modify header guard.