MXG Product Description

1. Who are we?

2. What is it?

3. What does it do?

4. What else does it do?

5. What is required to run MXG?

6. What does MXG displace?

7. How do I get the books?

8. Is there more documentation?

9. Are there restrictions?

10. How little does it cost?

11. How do I license the MXG Software?

12. What are the License Agreement terms?

1. Who are we?

In 1980, the original Merrill's Guide To Computer Performance Evaluation Using the SAS System, a 395-page book and tape of SAS programs, was published by SAS Institute. In 1984, SAS Institute published Merrill's Expanded Guide, an 867-page book, and distributed the MXG Software, a fully supported product of Merrill Consultants based on the original "Merrill Macros". In 1987, the 630-page MXG Supplement was published by SAS Institute. In 1991, Merrill Consultants bundled the sale and support of MXG Software, and began selling the books ourselves.

But to understand what MXG is really all about requires you to know a little about who we are. Our entire company philosophy revolves around several concepts that are near and dear to us. One of them is the ancient concept of Sharing Information. That was what computers were supposed to provide our civilization-a means whereby many users could share and exchange information designed to advance their work and expedite output in a minimum of time. That's exactly what MXG Software does: we share all that we know about Computer Performance Evaluation with bright users who share and contribute their discoveries with us to share with you. [And we give credit in our MXG Newsletter and in Chapter 99 to every user who has contributed to MXG!

We make it easy, since we ALWAYS distribute 100% source code.

Another concept we hold dear is Efficiency. Good quality software does not need to cost an arm and a leg, plus your firstborn child, and should not require multi-page negotiated contracts designed by lawyers. Our price is the same for each data center, and does not depend on the size nor on the number of CPUs at that site. MXG is single priced and will never charge for additional components; it also does not check CPU serial numbers-we trust our honest users. From the smallest computer shop to the largest megadata center with 10-digit budgets, everyone pays the same price, and everyone signs the same agreement.

But most importantly, we are a Service company. Our whole aim in life is to provide support and maintenance to our technical folks who spend their days, nights, and weekends making data centers run smoothly. That's why we often answer our phone on weekends, and have 24-hour fax service, because we believe the Technical CPE person is a data center's most valuable resource. We are devoted to our technical user, and do our best to deliver nearly perfect code, and to document the constant change in hardware, software, and technology through technical MXG Newsletters .

We are a Mom and Dad Texas Software Company, based in Dallas, and we are proud to be a leader in demonstrating that small businesses can provide extremely high quality mainframe software with word-of-mouth marketing! MXG Software has been installed in over 6,000 sites, in all 50 states, and in 52 countries! Our price was changed once since 1984, and we don't plan to change our price again until after the third Woodstock, in August, 2019.

2. What is it?

MXG Software is a comprehensive SAS-based software package that processes the "SMF" data records created by the computer operating systems OS/390 MVS/XA, MVS/ESA, VM/SP, VM/ESA, DOS/VSE, and OS/400 and raw records created by their subsystems like CICS, IMS, TSO, DB2, and APPC, as well as raw data records created by UNIX monitors (HP's MeasureWare, Landmark's TUX) and NTSMF records created from Window NT Registery's counters, or SNMP data collected with TrendSNMP, etc., etc., etc.

MXG Software reads those raw data records into an organized collection of self-documented, labeled, formatted and decoded SAS data sets, commonly known as the Performance Data Base (PDB), which is used for Measurement of Service Objectives, for Resource Utilization, for System Tuning, for Accounting and Cost Recovery, and for the Measurement and Management of Capacity, offering menu-driven tabular and graphical reports and analyses.

MXG Software is licensed by physical site (not by CPU) at which raw data is created, to one company for processing their data created at that data center, for use only by employees of that company. There ARE restrictions if you are involved in outsourcing, facilities management, or service bureau environments!

3. What does it do?

MXG Software is 1,450,000+ lines of SAS source code, in 3000+ members of a single MVS Partitioned Data Set (or CMS MACLIB) source library. MXG creates 2000+ individual SAS data sets (typically one data set per raw source record). Over 85,000 individual variables are created by MXG.

Using the power of the SAS System, these MXG-built SAS data sets are utilized for reporting in simple listings with PROC PRINT, or colorful graphic displays can be generated using SAS/GRAPH software.

These data sources/products (over 265 at present count) are supported:


It is only a slight Texas exaggeration to say the MXG supports every raw record on the face of the earth! Certainly-that is our goal!

Since 1984, support for every new IBM Operating System and Subsystem has been available from Merrill Consultants on product availability date.

MXG is both comprehensive and timely!

4. What else does it do?

MXG does a lot more than just create a data set for each SMF or VM data record. MXG fully exploits the strength of SAS to make analysis simple.

 Labels:    All MXG variables are descriptively labeled.  Using the SAS
            SPLIT='*' option of PROC PRINT, the label is printed as a
            three-line column heading (instead of the normal eight-byte
            variable name), eliminating the need for time-consuming
            programming with PUT and HEADER statements.  MXG labels
            also provide online documentation with PROC CONTENTS.

 Formats:   MXG-provided SAS formats decode hex values into character
            descriptions for ease in understanding these cryptic fields,
            or amplify one-byte fields into multi-character explanations,
            and yet use only one byte of storage in the SAS data set.
            Another format style (e.g., MGBYTES) automatically prints
            memory values in Bytes, Kilobytes, Megabytes, or Gigabytes.

 BUILDPDB   The backbone of MVS analysis, this MXG member processes an
            SMF file and creates the PDB, a collection of MXG data sets
            typically needed for system analysis, job analysis, charging,
            etc. The job-related SMF records (6, 26, and 30s) are assembled
            together to create the PDB.JOBS, PDB.STEPS, and PDB.PRINT data
            sets.  Partially completed jobs are protected by the SPIN
            architecture (a SAS data library that holds their data until
            the job has completed, for accounting accuracy and integrity).
            These are some of the datasets automatically created by

     JOBS   one observation per batch job, TSO session, or started task,
            containing 146 SAS variables.  These variables detail resource
            use, event timestamps, priority, etc, and are used for batch
            service objective measurement as well as for chargeback and

     STEPS  one observation per step, with 121 SAS variables for PROGRAM,
            STEPNAME, paging, CPU times, I/O, and memory.

     PRINT  one observation per print file printed by JES or PSF,
            containing 21 SAS variables describing form number, feet
            of paper printed, pages, lines, and durations.

     TAPES  one observation for each tape volume dismounted, with 18 SAS
            variables counting errors and SSCH (I/O's).

     IPLS   one observation for each IPL event measuring downtime.

     CICS.. several CICS data sets, including CICSTRAN (one per
            transaction), CICEODRV (CICS Shutdown statistics) and
            CICINTRV (CICS/ESA Interval Statistics), provide significant
            CICS response and resource measurements.

     RMF    several TYPE7nnn data sets are created for each RMF interval:

     TYPE70       CPU utilization (PCTCPUBY) and ASID statistics.
     TYPE71       Paging, swaping, central and expanded memory.
     TYPE72       Each PERFGRP's CPU, I/O, paging, and memory.
     TYPE72MN     RMF Monitor III statistics by performance group.
     TYPE74       Each Device's I/Os, Connect, Disconnect, Pending.
     TYPE75       Paging Data Set activity, pages transferred.
     TYPE78..     Virtual Storage and Logical Control Unit data.

     RMFINTRV     The individual RMF data sets are merged together
                  into a single observation per RMF interval, that
                  combines individual performance groups into high
                  level workloads (TSO, Batch, CICS, IMS, etc.),
                  and measures the "uncaptured" CPU time, the I/O
                  rates, paging, and RMF response times in a single
                  data set.  RMFINTRV is THE primary source for
                  measuring capacity by workload hour by hour, and
                  many tabular and graphical report examples are
                  based on this important MXG architecture.

     TYPE70PR     PR/SM only, captures the Logical Partition CPU
                  utilization for all LPARs (not just the LPAR in
                  which this MVS is executing), and reports true
                  LPAR management CPU time overhead per partition.

     Building a PDB is neither expensive nor expansive.

     A daily SMF file of 1,000,000 records from a pair of
     3090's may need only 3-5 CPU minutes and 50 cylinders
     of DASD!

     One site reported processing a weekly SMF file on
     11-3480's in only 60 3090-CPU minutes, building a
     400MB weekly PDB.

 Tailoring:  MXG can be tailored for your installation by editing a small
             number of "Installation Macros", which are members starting
             with IMAC, into the site's tailoring library (a small PDS
             concatenated ahead of the MXG.SOURCLIB) and therein making
             your changes.  Most sites need to tailor only three members:

             IMACACCT - Sets the number and size of accounting fields
                        kept (and thereby minimizes the stored size of
                        MXG-built data sets)

             IMACSHFT - Allows complete freedom in defining which time
                        frames are which shifts, so analysis could be
                        restricted to (for example), Prime Time, which
                        might be 7am to 6pm Monday to Friday only.

             IMACWORK - Maps your MVS Control Performance Groups to
                        workload category for the RMFINTRV data set.

             If you want MXG to process user SMF records (e.g., Cache DASD)
             you edit an IMAC (e.g., IMACACHE) to tell MXG which SMF type
             number your installation chose for that record.

 Exits:      Every MXG-built data set has an  EX........  "Exit member"
             that lets you create new variables, drop unwanted variables,
             select which records are to be output, and gives you complete
             control of everything that MXG creates.

             The BUILDPDB program has four special exits (EXPDB...) that
             make it trivial for you to have additional SMF records kept
             automatically in your PDB, while reading SMF only once!

 Reports:    MXG exploits the power of SAS, and reporting is the forte of
             the SAS System.  Thus you won't find a large list of canned
             reports in MXG.  Because of one-to-one mapping of raw data
             records to their MXG-built SAS data sets, many reports need
             only three SAS statements:

             PROC PLOT; PLOT RESPONSE*USERS; TITLE 'Response';

             However, MXG is not without a fine set of example analyses,
             especially in areas of CPE measurement that are not quite so
             straightforward.  Graphical and tabular reports of RMF data
             based on RMFINTRV are quite robust, and CICS analyses are
             extensive.  Many data sources are ANALysed in MXG sample
             report members ANAL.... (e.g., ANALCACH for Cache DASD).
             DB2 reporting is the most extensive, because of its newness
             and its complexity; the majority of the important reports
             produced by IBM's DB2PM product are paralleled in MXG's
             ANALDB2R reporting system for DB2 (including DB2 trace).

 Trending:   Long term trending of important MXG-built data sets is made
             simple by MXG TRND.... programs that summarize and combine
             MXG data (typically by shift and by week) compactly. Trending
             exists for: CICS Transactions, DB2 Accounting, DB2 Statistics
             DOS Power Accounting, PDB.JOBS service objectives, Printer
             Usage, RMFINTRV, the MXG Tape Mount Monitor, VM Devices,
             VMONPERF, VMXAINTV, MVS TYPE71, TYPE72, and
             TYPE70PR PR/SM data.  Printed and graphical report examples
             from the Trend Data Base are provided; the pretty color graphs
             of Weekly Capacity Growth that are printed in Chapter Forty-
             two of the MXG Guide came from the TRNDRMFI-built data.
             Trending uses MXG's powerful VMXGSUM architecture, which
             can be easily invoked for your own additional trending.

 VM/ESA      MXG was the first product on the face of the earth to fully
             support the original VM/XA MONWRITE data, and now reads the
             enhanced MONWRITE data from VM/ESA.  Similar to VM/370,
             important data from the System, User, and Device domains are
             not only captured individually, but also are merged into the
             summary interval data set VMXAINTV for ease in analysis.
             Trending support is provided for VM/ESA in TRNDVMXA.

 WINDOWS NT  Because Windows NT does not have an "SMF writer", we designed
             One, NTSMF, with Demand Technology, that creates data files
             that can be processed on the PC, or can be shipped to MVS for
             processing just like your daily SMF data, to measure Win NT.

 Unix        Like Windows NT, you need a monitor to create data records.
             MXG supports HPs MeasureWare and Landmarks TMON for Unix.

 MXGTMNT     The MXG Tape Mount Monitor facility.
             MXG is a product that normally reads rather than creates data
             records, but there is one important MVS event that had never
             been measured by IBM:  how long does it take for your "tape
             apes" to mount a tape volume.  To measure that tape mount
             time, MXG created the MXG Tape Mount Monitor program.
             Written in Assembler (there are still a FEW things that are
             better done in ASM than in SAS), you assemble and link edit
             ASMTMNT to create the MXGTMNT program and run it in its
             own address space.  MXGTMNT contains no system hooks; it
             simply wakes up every two seconds, scans the UCB chain, and
             writes an SMF record at the end of each tape mount.  The
             record contains JOB, VOLSER, UCB, START & END timestamps,
             and the Mount Pending Time duration that the operator (or the
             autoloader or silo) took to mount the tape.  (Operators can be
             faster than autoloaders!)

 VTOC/VVDS   MXG not only processes the new DCOLLECT Utility
             data on your DASD farm, but long before it existed, MXG also
             provided programs to dynamically allocate all online volumes
             and read their VTOCs for DASD Space management and reports.
             MXG provides a similar program that allocates and reads your
             VSAM VVDSs for recovery of your VSAM data spaces.

5. What is required to run MXG?

MXG requires only the Base SAS product, and MXG can run under OS/390, or OS/2, Windows 95 or NT, or UNIX to process data records. Once MXG's SAS datasets have been built, they can be used with ANY supported version of SAS on ANY platform for reports and analysis. Thus MVS/ESA SMF data can be processed on your MVS host but analysis and reports can be produced on your PC. Or your Windows NT data can be sent to OS/390 like SMF data!

SAS/GRAPH is not required, but MXG provides many SAS/GRAPH examples, because most MXG sites also have the SAS/GRAPH product. Sites that use MXG and SAS for billing/chargeback also find SAS/FSP is useful because of its ability to EDIT-in-place SAS datasets, and many sites use SAS/AF for menus.

The MXG Source Library requires 150 cylinders of 3390 DASD (about 110MB); the MXG Format Library needs but 1 cylinder of DASD.

The size of the PDB depends on the size of the data center's input data, but we measure MXG PDBs in cylinders, and not in DASD volumes as required by other products.

Many sites follow our recommendation and keep online eight daily PDBs, one weekly PDB, last month's PDB, and their long-term Trend Data Base (typically 5 years in 5 cylinders). Prior weekly and monthly PDBs are copied to tape for storage. At $6 per tape cartridge, that is only $300 per year! Once you have regular weekly reporting and the Trend Data Base in place, you seldom need to go back to previous weeks' PDBs, and even if you do, it's real inexpensive to read SAS data sets on tape!

One site with two 3090s, lots of TSO and IDMS, reported that their total online DASD space for all MXG PDB and Trend libraries was 350 cylinders!

6.What does MXG displace?

MXG customers have reported that MXG has replaced these products:

      COMPANY:                      PRODUCT:

      IBM                           SLR, VM/MAP, VMPRF, CICSPARS, DB2PM

      Computer Associates           JARS

      LEGENT                        MICS

      Pace Applied Technology       KOMMAND

7. How do I get the books?

Both of Dr. Barry Merrill's books, now online in the MXG Source library, MXG Guide (1984) and MXG Supplement (1987) are 1497 pages of encyclopedic reference in forty-two chapters that not only describe MXG itself, but are also general references to the sources and uses of data for Computer Performance Evaluation. In fact, the full name of the MXG Guide is Merrill's Expanded Guide to Computer Performance Evaluation Using the SAS System!

The books were published by SAS Institute, but now only the MXG Guide is still in print. It is available from Merrill Consultants; a Book Order Form accompanies this Product Description brochure.

The rewrite and consolidation of these books & papers continues; many ADOC.... members of the MXG Source Library are complete (ADOCNTSM for Windows NT is 146 pages!) and can can read online! Ultimately, all MXG documentation will be delivered online as part of the MXG Source Library!

8. Is there more documentation?

There's a lot more documentation. Thirty-Five Technical MXG Newsletters have been published with pages of additional technical papers, APARs, new records, and new products supported by MXG, etc. All MXG newsletters are contained in member NEWSLTRS so they can also be searched, browsed, or read online.

Member DOCVER contains the abbreviated description, alphabetically, of every variable in every data set (if printed, this is over 1300 pages!) The changes between MXG Versions are also documented online (in member DOCVER12 for changes between Version 11 and 12), so you can readily find out what was added when.

All of the changes in all Versions of MXG are described in detail in member CHANGESS, so you can easily find in which MXG Version a product was added. Online searching makes it easy to find the most recent change to a product, and how MXG processed that change.

Member IMACAAAA indexes every product supported by MXG, and identifies the ADOC documentation member that describes the product, its manuals, its data records, the MXG datasets built, and technical notes on analyzing the MXG datasets built from that product's raw records.

Yes, there are several sources of documentation, and in addition, our phone or fax number in Dallas will be happy to serve as your index!

The three-day Class "Computer Performance Evaluation for MVS Systems" starts on the first Wednesday of April in Dallas and of November in Cary, NC, and occasionally elsewhere. Contact us for the schedule, description, and registration forms for this intensive, pragmatic, $1200 class.

9. Are there restrictions?

The MXG Software is protected by Copyright and is licensed to a single physical site address annually. You must execute our contract and pay our annual fee to be able to use MXG Software. No pay, no play! And there are additional restrictions in Paragraph 5 of our License Agreement:

MXG Software is licensed for use at a single physical site address, or 'data center'. For this purpose, a data center is defined as a single copy of MXG Software (stored on a single DASD device) that is executed only on processors that are connected to that DASD device. The MXG Software is to be executed ONLY at the licensed site, and ONLY for the analysis of data created at that site, and ONLY for presentation of results to the Customer exercising control over that site. The execution of MXG Software as an execution service (i.e., Customer using MXG to process another company's data, or Customer using MXG to process data which was created at a different data center, or Customer using MXG to process client's data, or Customer using MXG for consulting services based on MXG, or executing MXG Software against input data transmitted from a different physical data center) requires a separate Addendum to the License Agreement.

OUTSOURCING, FACILITY OPERATIONS, AND MXG LICENSING: (Interpretation of Paragraph 5 of the License Agreement)

MXG Software is licensed to an Enterprise to be executed at a specific data center, i.e., MXG is "site" licensed. Only data created by that Enterprise, and only data created at that physical site address can be processed by that MXG Software license, and only the licensed Enterprise can gain benefit (i.e., get reports) of MXG Software.

1. For Enterprises considering Outsourcing/Facility Operations:

When an Enterprise enters into an outsourcing or facility operations contract with a third party, (a "Contractor"), we require that both the Enterprise and the Contractor hold separate MXG licenses for the physical site, because both the Enterprise and the Contractor gain the benefit of MXG Software execution:

If the physical location, or the technical or invoice address change, the Enterprise must complete a "Site Description" form to notify Merrill Consultants of the change.

The Enterprise must provide Merrill Consultants with the name, address, and phone number of the Contractor's representative to whom Merrill Consultants will send contract forms for their execution.

2. For Outsourcing/Facility Operations Contractors:

One MXG Software license is required with Merrill Consultants for each of the Contractor's Data Centers. The normal MXG license would permit the Contractor to use MXG to process its own data, but would not allow MXG to be used to provide analysis, resources, etc., to Contractor's clients. In addition, the normal MXG license could not be used to process data created outside the data center (for example, for sizing of prospective clients).

These restrictions can be removed by the inclusion of the following terms in an Addendum to the License Agreement between Merrill Consultants and the Contractor:

"Contractor" agrees that each "Enterprise" that is provided a separate execution partition, or isolated DASD, or that was previously an MXG user, will be separately licensed for MXG Software before that "Enterprise's" data can be processed with MXG Software by "Enterprise" or "Contractor" employees.

"Merrill" agrees that "Contractor" may use MXG Software at the licensed site to process data records not created at that site and for "Enterprises" who are not currently licensed for MXG Software, with the following restrictions:

The purpose of this use of MXG Software must be related to the sizing/evaluation of this Enterprise as a prospective client of Contractor's data processing services, and must not be work for hire or consulting services for the Enterprise. If results of the sizing/evaluation are provided to the Enterprise, they must acknowledge that MXG Software was used in the analysis.

You may draft your own Addendum using these terms and submit to us for approval, or we can send you examples of acceptable Addendum, once we understand the nature of your business.

Why all these restrictions? Because consultants have tried to sell a capacity study to a data center for $50,000, and never told the data center they could have done the study themselves for only $2,500 per year!

And because each "enterprise" which gains benefit from MXG Software must pay its fair-share, i.e., the annual fee for its "data center."

What does all this really mean for a typical company's data center? Just that MXG Software is licensed to that "data center" whose data is to be processed by MXG, that you can't give your friend a copy of MXG, and that if you use MXG Software, you must pay our maintenance fee on time each year!

10. How little does it cost?

Unbelievably little, our users tell us. First of all, MXG is licensed by physical site, and not by CPU. One site license covers one company's use of MXG for its data from all CPUs (of all sizes!) at that one site location.

The annual fee for the license and support of MXG Software is $2,500 U.S. Dollars for sites in the Western Hemisphere. Overseas MXG Licensees also pay a fixed price, in local currency, equivalent to 2,500 EURO.

Payment must be drawn in $USD on an item that is clearable through the Federal Reserve System of the U.S., or with an International Money Order, or via ACH or other acceptable electronic means.

We will accept multi-year contracts.

Yep, that's dollars per year, not per month or per week!

We are children of the Sixties, giving away the keys to the kingdom for a tuppence!

Maybe that's why MXG Software is installed in over 6000 sites worldwide.

Note that if you fail to pay your renewal on time, you lose your license to execute MXG Software, and reinstatement requires reexecution of the MXG contract as well as payment of a reinstatement fee.

There is no additional fee to reassign a license from one company to another due to merger or acquisition or name change, but we require the new company to execute the current license agreement at its then current rate; current term dates are preserved.

You may want to purchase separately the 1984 MXG Guide, but all of the documentation is contained in the MXG Source Library itself. (use Book Order Form).

What about a free trial? We offer a 60-day money back guarantee!

We won't send you our MXG Software unless you can execute our License Agreement (primarily to acknowledge exactly what we mean by Support, to acknowledge our Copyright, and to accept the restrictions on the execution of MXG Software), but paragraph 8 of that Agreement provides explicitly for a 60-day period in which you can cancel the purchase by writing a technical explanation of what you did not like, and also sending back our tape and newsletter materials. Isn't that easy?

11. How do I license the MXG Software License?

It's so easy. Like the rest of our philosophy, we always try to simplify things, and the procedure for acquiring MXG is no different.

You merely write, or fax (214-350-3694) or email ( and ask for us to send you the MXG License Agreement forms (sample copies are in this brochure), with the address of the site to be licensed. You then fill out the two-page License Agreement, have it signed by a Company official authorized to execute contracts, and return both 3-part forms unmodified to Merrill Consultants.

We sign them, and ship the MXG Software Package (MXG tape, and recent printed Newsletters) to your Technical Person, using UPS Overnight where available, or via U.S. Airmail otherwise, so you'll have MXG Software up and running quickly.

We simultaneously mail the invoice to the Invoice Person, and also include your copy of the executed Agreement. Our W-9 tax information is printed on our invoice.

If your company requires Purchase Orders to be issued for payment, we will include that Purchase Order Number on our Invoice ONLY if your Purchase Order contains this statement:

This order is issued under License Agreement ___(CID# on form)___ already executed between Merrill Consultants and __(your company)__. The licensee concurs that the License Agreement for MXG Software is the sole controlling document. The terms and conditions on this purchase order do not apply.

If your site is a U.S. Government site you must execute the MXG License Agreement and complete the Site Description Form, and then incorporate the License Agreement by reference to the "CID Number" in the body of your Form. All three forms (License Agreement, Site Description, and your form) must be sent to Merrill Consultants in order to complete your application.

IMPORTANT NOTE: One reason we can offer the incredibly low price for the huge amount of service we give is because our company is not driven by paper processing. That's why we do NOT allow modifications to our License Agreement-we simply would rather devote the extra time that it takes to customize Agreements to technical matters for our technical users. We are especially proud of the State of Texas, so please don't ask us to change where we do business.

If you want modifications, we'll give you the phone number of companies with $100,000 products that will modify reams of contracts to your heart's content.

12. What are the actual License Agreement terms?

Our License Agreement is an application to become an MXG user.

The MXG License Agreement and Site Description forms are two multi-part physical forms that cannot be sent via electronic means. We send forms via UPS Overnight, so we must have your name, your company's name, your street address (no PO Box), your phone number, and your email address; please send your Request for License Forms via email ( or fax (214-350-3694). Please provide a brief (one sentence) description of your company's business.

If your company cannot sign our License Agreement, then perhaps MXG is not suitable for your company!

The wording of the MXG Software License Agreement can be reviewed by your lawyers or contract specialists while the actual forms are enroute, but you cannot print this form for execution:
MXG License Agreement (page 1 of 2)
MXG Site Description form (page 2 of 2)