refactor: changed Command.CreateCommandLineArguments to return IEnumerable and cleaned up inheritance design