more abstraction using enum and namespace
delete some commented code
Merge pull request #27 from kariminf/master

More abstraction