refactor
refactor
separate module and namespace
rename *State to T*
add pop method. witch can pop a module or block automatically.
remove unused code
rename $rm -> $rename