Refactoring interfaces; Added IArgument