Add filters and edit the SmartFormatter
move the SmartFormatter to new place
Using Nunit.

not all tests are passed yet
reorder things
Fix bugs on filters