Finished the Arg parser. Created the PluginFactory and refactored AbstractPlugin so that we can leverage all features.
add test cases for arg Parser