Posts Tagged ‘Data Cleansing’
Thursday, July 29th, 2010
And he continued to say “That’s the area where we would need the least amount of help given that we’ve outsourced these parts ten years ago and the low hanging fruit is not around any longer. What do you say to the outsourced scenario of the management of use, cost and inventory out of control the buying teams”?
My first question is “how you would get information when it’s not in your system”? Does your supplier manage inventory for all of your plants and facilities resulting in a global view of spend? Does your supplier manage your data to the OEM or to suppliers so you have duplicate inventory costs?
Just considering the MRO items, the information could come from engineering or the integrated supplier. Logically, the integrated supplier would have been provided the part information from your company in order to setup and purchase the items in the first place. It is likely that they have the records as they were given them and they are linked to item setup in the purchasing system. The top level source would have been engineering who would have either had the equipment constructed or been responsible for the equipment purchase and the parts along with them. If after or during the purchasing activity the “key” item record is setup in the purchasing system using the part supplier information versus the OEM information, this will lead to item duplication. Duplication then will create overstock, variant pricing, variant lead times and other inconsistencies that add unnecessary cost.
Based on what you are saying it sounds like items in your system are based on either the part supplier data or specifically identified by the integrated supplier (their item number). The best scenario is when the OEM part is what is setup as the key item, having the purchase action to the OEM directly (OEM setup as a supplier) removing the “middle man” cost. Second after that is having the OEM part as the item, linked to the specific supplier(s) for purchase. Local purchase suppliers are still linked to the same item also. Having the same item record used across the enterprise is optimum.
I would also add that there should be a means to discover OEM part information as a reactive purchase need comes from maintenance. Parts are typically identified physically with OEM information. For example an Allen Bradley/Rockwell module with have the Allen Bradley part number physically stenciled on it. If a part breaks and maintenance needs one, there must be a way to find out if that part is in stock and a way to buy it if is not. We believe that enterprise wide viewable, verified and standardized OEM part information will reduce the cost for maintenance by eliminating the time consuming discovery of part information in your systems and the correct parts are stocked. This approach also enables part sharing between facilities that is limited without common data. Part sharing in turn reduces overall cost through reduction of inventory. With plants here in the U.S. and worldwide, this type of advanced planning is where the true brunt of the savings come through.
Obviously, much depends on the specific agreements with your integrated supplier. But consider the following questions. If the data stored in your system is not the OEM information then it’s logical to assume that it is data created by the integrated supplier from the OEM data.
1) How does your company know that the information is accurate? Are there any checks between the data given to the integrated supplier and what you have in your system?
2) How does your company know if they have the correct parts setup in the system and stocked appropriately? It seems that there is an opportunity for the integrated supplier to setup and stock items which aren’t necessary and would only be discovered through data transparency.
3) How does your company know that you are getting the best price on parts? Even if there is a cost savings agreement with the integrated supplier, if there are duplicates the opportunity for piece cost reduction is lost when the true usage is not known because of part duplication.
My second question in this. It seems from your response that everything is running quite smoothly. But is that true in Manufacturing? Do they ever experience loss of production because a vital part could not be found or was out of stock? How about Maintenance? Inventory management? Engineering? These are the departments that should be surveyed because there is a benefit for them too.
Tags: Business Intelligence, Data Cleansing, data governance, data management, Data Profiling, data quality, DATAForge, dataquality, Inventory Management, linkedin, maintenance, manufacturing, Maximo, mdm, spare parts
Posted by Jackie Roberts | Post a Comment! »
Friday, April 23rd, 2010
When it comes to Master Data Management, the implied definition is an à la carte of detailing and normalizing activities including data cleansing, data verification, data profiling, data governance, de-duplication, data enrichment and data provenance among other tasks. If you are managing or participating in the activities of a Master Data Management program, you are progressing in the right direction of achieving data quality. If you are NOT participating in the activities of MDM then you are part of a company wide initiative of “Garbage In, Garbage Out (GIGO)”. By the way, GIGO, in this case is not environmentally responsible or a “green” behavior.
Wikipedia’s definition for “Garbage In, Garbage Out, is a phrase in the field of computer science or information and communication technology. It is used primarily to call attention to the fact that computers will unquestioningly process the most nonsensical of input data (Garbage in) and produce nonsensical output (Garbage out).”
If you enter “garbage in” to a computer system, having the data passed through some very expensive ERP or CMMS software, isn’t going to change the data quality, the business results are equivalent to “garbage out”, which will be apparent in the day to day business activities and subsequent reporting used to determine the health of your business. Is it obvious that data should just not be moved from one system to a new system without a MDM program?
Let us now explore the concept of data migration. Wikipedia’s definition for Data Migration is the process of transferring data between storage types, formats, or computer systems. Data migration is usually performed programmatically to achieve an automated migration, freeing up human resources from tedious tasks. It is required when organizations or individuals change computer systems or upgrade to new systems, or when systems merge.
If an MDM program is not in process when implementing a new software or upgrading an existing software, the project should include an evaluation of the data and/or an evaluation of the additional functionality of the “to be” model of the new software identifying the new data required for improved business processes, reporting and the plan for legacy data clean up. A data migration project needs to be more than moving data from a legacy system to the new system.
I asked the question to one user of a maintenance software implemented a number of years earlier as I had the opportunity during a site visit at a plant. The software had awesome abilities to create and manage the relationships between equipment and spare parts, supplier contacts as well as the potential to improve processes, reporting and streamlining the information required for a maintenance organization. The company invested in the software / hardware, understood the ROI but lack the understanding of the data needs or management. The software was implemented however the majority of the functionality was not used, therefore the ROI was never achieved. When I asked why, I was told “no data and we don’t have time to add the data.”
Another scenario I came across, purchasing moved data from a legacy system to a new ERP system. The data wasn’t set up to a data governance or MDM procedure, legacy data riddled with duplication, obsolete information, unstructured descriptions and so forth. Different system, same legacy data quality and the ROI was never achieved.
I have one simple question, why invest in a software product if the data is not going to be treated as an asset? The results of a successful implementation are that the business processes are streamlined; simplified and reporting capabilities are enhanced through enabling both Master Data Management and Software functionality.
Garbage In, Garbage Out or Garbage Extracted, Garbage Migrated as we are moving to the next generation of technology. Are we relying on a skewed nonsensical output based on low quality data to make our critical business decisions?
Tags: Business Intelligence, Data Cleansing, data management, Data Profiling, data quality, DATAForge, dataquality, linkedin, masterdata, mdm, MRO, Software as a Service, spare parts
Posted by Jackie Roberts | 2 Comments to View »
Friday, April 23rd, 2010
Whether you are new to data quality or a seasoned professional, this conference will provide you with a unique opportunity to discuss the latest trends, technologies and software available to the data quality industry. You’ll experience top level speakers discussing how to manage, catalog, clean and standardize your data. It will introduce you to the international standard for data quality , ISO 8000-110. An exhibition will showcase the latest data quality software from companies not only in the U.S. but all over the world.
PROGRAM OF EVENTS
Tuesday October 12, 2010
- Pre-conference ISO 8000-110:2009 Master Data Quality Certification Workshop
- Welcome Reception (includes open bar and hors d’ oeuvres)
Wednesday October 13, 2010
- Opening Address
Overview: The critical need to maintain the quality of master data.
- Panel PresentationsFundamental updates on the progress of the practical application of the eOTD (ECCMA Open Technical Dictionary), ISO 22745 and ISO 8000 for the collection, validation, and distribution of master data in support of the procurement of goods and services as well as inventory and asset management initiatives. The panels will address the importance to using the standards to define and manage data requirements as well as the latest trends in spend analysis, cataloguing at source and data cleansing and rendering.
- Exhibition
A unique opportunity to see the latest offerings from leading data service and software application providers.
- Annual Awards Dinner
Celebrate and share achievements with colleagues and friends.
Thursday October 14, 2010
Workshops will cover new technology and practical examples of vendor specific data quality application software and data cleaning services.
*Content subject to change.
Tags: Data Cleansing, data management, Data Profiling, data quality, dataquality, ECCMA, eOTD, linkedin, masterdata, mdm
Posted by Industry News | Post a Comment! »
Wednesday, March 10th, 2010
Those of us that work around or manage the day to day operations of an MDM, data governance, or data cleansing projects understand the challenges and efforts needed to transform “raw” data though multiple stages of analytics and processes to achieve information quality to be used in our customer’s CRM, CMMS, PIM and ERP systems. The result of an un-cleansed product record can cause a production line to stay off line because an inventory item wasn’t ordered due to incomplete information or added inventory cost of ordering an incorrect item (we can be talking about a $10,000 motor) or multiple entries and setups in the material master due to data duplication.
Data vs. Information definition: to simplify the concept, data is managed by a combination of a team of analysts and software to achieve the goal of a cleansed record or useable information. Data is imported and profiled, classified, structured, verified, enriched, translated and reports generated; we create useable information from low quality data for use in decision making related to engineering, purchasing, maintenance, marketing, sales, etc. The data that is exported into client systems is information that will meet a predetermined set of data governance rules and information quality requirements.
Data Quality Experts, let have a discussion on the definitions of data quality, does an address or a product detail meet the requirement if only classified? Or should verification at source (contact for address or manufacturer / supplier for product) be required at initial setup of the data in the system or maintenance scheduled as part of the data governance program? Is the data incomplete? Does the MDM process include a question / answer scenario to complete the data?
MDM software designers and developers can we also have a discussion on the software’s ease of use to manage the stages of data cleansing to support a MDM philosophy and using advanced techniques to automate the management, add intelligence in processing data imports, workflows and data cleansing stages of classifying, profiling, matching, translation, data audit analytics, exception reports and status reporting of a data record?
I believe these are great discussion points and will serve as great blog topics.
Tags: Business Intelligence, data, Data Cleansing, Data Profiling, data quality, DATAForge, dataquality, linkedin, maintenance, masterdata, mdm
Posted by Jackie Roberts | 5 Comments to View »
Tuesday, March 2nd, 2010
During my morning data quality, MDM and data cleansing reading, I happened upon this on a help site and the million $$ question:
I have a scenario to build a data flow task for Data Cleansing.
Logic 1 to be build:
Source data would be like 1050 and I should convert it to 1.050
Source data would be like 085 and I should convert it to 0.85
Profiling, structuring or normalizing data without any referential information risks errors in business use, especially if the data is use for purchasing or maintenance. If the goal is to automate the data normalization, the data needs to be referenced to metadata, 1050 could be a part number? Or a quantity? It could be an attribute representing a measurement such as length or diameter. Is it an inch or foot or meter?
Tags: Data Cleansing, Data Profiling, data quality, DATAForge, dataquality, manufacturing, masterdata, mdm
Posted by Jackie Roberts | 1 Comment to View »
Tuesday, March 2nd, 2010
Now that we have determined that MDM, Data Governance, Data Cleansing and Data Quality are important as well as the new trend for blogging, tweeting and discussion in general, I ask the most important question . . . HOW? When do we get to the discussions on the content?
I am a very detail oriented person; I have to be as one of my largest accounts requires me to participate in the day to day deployment of global MDM processes for one the largest automotive manufacturers! I am very interested to learn how businesses in other industries manage their data. I would hope that sharing of information and best practices among industry partners will be a win-win situation. At a minimum the discussion will be refreshing; the sharing of innovative information the will spawn the creative improvement needed to create truly efficient knowledge driven business processes, data classifications, metadata and definitions and translation. . . is anyone interested in discussing the logistics of managing translation as part of Master Data Management?
Is anyone interested in discussing my struggles and sharing yours trying to find standard global translations for ISO UOM (Unit of Measures)?
Is anyone interested in discussing what fields should be included in a MDM Data Governance Program for MRO data; UNSPSC, warranty, term of warranty, lead time, estimated price, ECCN, etc.
What Schema or classification structures are you using for spare parts and maintenance items? What about a discussion on using a public vs. priority classification system?
What are some best practices for migrating, profiling, structuring, mismatching and re-verifying legacy system data?
We have a nifty data mismatch process for manufacturer contact information; will this be easily implemented for a CRM data project? What about patient contact information in the healthcare industry?
There are a few bloggers out there that continually add content to their writings but it is starting to appear to be a small group, anyone out there interested in achieving data quality want to discuss “real” life best practices, lesson learned or discuss HOW of MDM, data quality or data cleansing.
Tags: automotive, Data Cleansing, data quality, DATAForge, dataquality, ECCN, eOTD, linkedin, manufacturing, mdm, MRO, spare parts, Translation, UNSPSC
Posted by Jackie Roberts | 12 Comments to View »
Thursday, February 4th, 2010
Dear Andrew White,
Thank you for your comments in “Something beyond MDM is coming your way – would MDM 2.0 fly?” and starting the discussion to expand the definition of MDM to include data integrity, data quality, entity resolution, matching, data integration, governance, metrics and analysis. The topics discussed should also include work flow (management of data and analysts), translation management, data structuring, data profiling, duplication removal, data change management, verification contact management, etc.
The MDM and PIM software industry needs to take a step back to understand actual day to day business requirements of data management to achieve Master Data Quality. Lesson one is that data is created and supplied by many sources in many different formats at various quality levels. Data is created by engineering, submitted by integrators, manufacturers and suppliers. To add to the complexity of the information flow, data is introduced into businesses systems in different departments (engineering or purchasing or maybe plant from maintenance) with different data requirements to meet the needs of that job function. Now the next dynamic is mashing new data to existing legacy data in a number of systems to ensure no duplicates are created, managing obsolete / recommended use and functional equivalents. The old philosophies of a PIM or MDM software to “hold, provide search functionality and maybe a shopping cart” isn’t going to meet the true requirements of the new definitions of Master Data Management.
To meet the new definitions the MDM or PIM software needs to provide horse power to electronically and intelligently processing data to identify exceptions for manual intervention by an analyst. Data should be processed one time to ensure that the data record will be enriched to meet the requirements of the enterprise and then the record is moved to a maintenance program (managed also by the MDM or PIM software). The processing of data needs to be efficient and cost effective, from my perspective the cost of data management should be covered by the cost saving achieved by MDM management.
I look forward to the discussions as the definition of MDM is expanded to include data quality, data governance, data provenience as the software industry provides the intelligence, functionality and business processes to cleanse, enrich and management data for my client to ensure their ability to make confident business decisions based on data integrity and accuracy.
Here is to the future of PIM and MDM!
Jackie Roberts
Tags: Andrew White, BPO, Business Intelligence, data, Data Cleansing, data management, data quality, DATAForge, development, Gartner, linkedin, maintenance, manufacturing, masterdata, Maximo, mdm, MRO, SaaS, Software as a Service, system implementation, Technology
Posted by Jackie Roberts | 2 Comments to View »
Friday, January 8th, 2010
With the ever increasing emphasis on finding ways to reduce cost, one of the clear targets is IT and more specifically data management systems. On the surface it can seem like there is real fat to trim, and many times this is true. But it is easy to become lost in the details and eliminate or negate some of the potential savings. Some of these ideas may seem obvious but are often forgotten. The evidence is clear with missed timing and over budget issues seen.
If we’re talking about a large company then inevitably with this new system comes the monolith project with whole organizations of people and processes, projects and documentation. The compulsion is to be sure that everyone, everywhere who has any relationship to it has their input and their needs accounted for. Along the way, the cost of implementation and other peripheral indirect costs have likely negated a great deal of at least any short term savings. Not to mention the potential increase in continuous maintenance costs and loss in performance. These are a few things I’ve learned from experience and I welcome yours.
Always have a specific objective when planning for development or evaluating software to purchase that overrides all others. Start with something like a mission statement, “We need this new system for….”
Determine the Real Needs. Try to separate the “must haves” from the “nice to haves”. Bells and whistles are great but there needs to be a true benefit. Seek a balance between development time, software performance, hardware performance and user experience. I always try to put special emphasis on the user group which stands to benefit the most. Having many users who can do their job faster and more efficiently can add up to real savings versus the few users who have a special need which bogs down the project and performance.
Change is inevitable. If some requests for additional features come along, evaluate them against the mission objective. There is nothing wrong with listening and investigating ideas for project add-ons as long as the benefits outweigh the costs in time and money, but there needs to be a limit or you’ll never complete the project. Good ideas can always be implemented later if it makes sense then you’ll have the benefit of the research already done, but be quick with the research. Evaluate the impact for doing it now or waiting. Here are some good questions to start with: 1) How much more money? 2) Would this be faster/cheaper for programming to do it now versus waiting and doing a more complicated enhancement? 3) Is the impact to the users great enough to warrant it?
Know the roles. Good ideas can come from anyone. Every project must have a project champion who makes the final decisions (and live with them) and also eliminate roadblocks. You need a user advocate who has done the job and knows what it takes. Have programmers who possess both talent and vision, not just code crunchers, and listen to them.
Have good documentation, and “Good” is subject to interpretation. This is another area where the KISS principle is very often not utilized. If you have to hire ten people to sit in meetings just to maintain your documentation you’ve probably overcomplicated it and certainly increased your project cost. I try to start with these principles:
- Document the people on the project and their responsibilities. Let there be no question as to who does what.
- Everyone who has a job to do needs to understand what they need to do and have the documentation to reference.
- Keep the language simple. Focus on getting the point across. If it takes a rocket scientist to understand it you’ve failed.
- Of course, document the issues, decisions made, by whom etc. but be sensible. Document enough to cover for the “he said/she said” but content is most important. No bonus points for flash.
- Know who is supposed to have what done and when. Another obvious one here but I see too often where target dates are determined top down with little or no thought to cost or the tasks. Don’t let the tail wag the dog. Pushing hard to get the job done is fine but be realistic. Listen to the people who know before making bold predictions.
Tags: Agile, automotive, BPO, Business Intelligence, data, Data Cleansing, data management, data quality, DATAForge, dataquality, development, eOTD, ERP, linkedin, maintenance, manufacturing, masterdata, Maximo, mdm, MRO, project management, SaaS, Software as a Service, spare parts, system implementation, Technology
Posted by Carl Hamlett | Post a Comment! »
Wednesday, December 2nd, 2009
As the Master Data Management industry matures, the industry focus is not only on the development of software to collect product records but software to implement the data quality process solutions supporting data governance and provenance including record history, structure, completeness and accuracy to ensure our customers are able to make confident, informed and accurate business decisions based on data accuracy. The first step of implementing a data governance program is implementing a naming classification system.
I have had experience working with single business home-grown classification structures and third party developed structures for purchase, currently I have chosen an open and public classification structure provided by ECCMA (www.eccma.org). This is beneficial to the customers that I support ensuring that they will always have access to the classification structure sometime referred to as the schema used to classify their data.
Implementing a classification requires setting up Identification Guide (IG) to establish the template definition to technically describe the product or service with enough information to support engineering, maintenance or purchasing while recognizing the limitation of software short and long description required character lengths. The IG template supports and simplifies the required information request to the manufacturer and suppliers to verify all information by our analysts to standardize the description.
To create an IG, we search the ECCMA class list; fortunately many of the classes are established. As the IG is set up we will use the ECCMA established class name convention; this will ensure that every item will be setup with the same name and format, every ball bearing item submitted will be classified as a BEARING, BALL.
The next step is to set up the properties required to describe the BEARING, BALL and for each property designated the data type requirements such as numeric, text string or designated unit of measure. The property value requirements for a BEARING, BALL might include TYPE, BORE DIAMETER, OUTSIDE DIAMETER, WIDTH, DYNAMIC LOAD CAPACITY, STATIC LOAD CAPACITY, MATERIAL and so forth. Our analysts will verify the data to the original manufacturer sometimes using xml to exchange the product information referred to as “Cataloging at Source”, the information requests are standardized and remove much of the quality issues commonly found in a non-standardized data verification or description process.
The property value description build is controlled by the sequence number of each property Item data that will make it’s way into a length restricted description field we place the most important information in the begin of the auto generated description.
Setting up the Identification Guides requires upfront strategic planning and detailed work, as you can imagine that a classification schema can be up to 10,000 classes depending on the industry but it provides a multitude of benefits including standardized requirements, a road map for our analysts to facilitate the process, improved data management reporting / metrics and enhances language translation for the global organization.
Tags: BPO, Business Intelligence, data, Data Cleansing, dataquality, eOTD, linkedin, masterdata, mdm, Software as a Service, spare parts
Posted by Jackie Roberts | Post a Comment! »
Friday, October 23rd, 2009
With all the discussion focusing on Master Data Management and Data Quality, I always come back to these questions: How is the data structured and how is the accuracy and content completeness measured? In our business of managing the coding and verification of items and spare part information needed to keep manufacturing plants running, a structured schema of naming conventions (class), descriptive attribute standardization (properties) and verification at the sources of manufacture (coding @ source) is “key” to quality and completeness measurement. We are managing the ECCMA eOTD for the Automotive Industry Content Standards Council (AICSC) focusing on MRO naming definitions which is the foundation to a spare part description, just as a table of contents is the foundation of a text book.
The first step is to develop the Identification Guide (IG) in order to baseline the properties needed to best describe the class. For example, let’s take the class of SCREW, SHOULDER and the properties TYPE, MATERIAL, FINISH, THREAD SIZE, DRIVE SIZE, SHOULDER DIAMETER, SHOULDER LENGTH, THREAD LENGTH, HEAD DIAMETER, HEAD HEIGHT, SHOULDER LENGTH TOLERANCE, MINIMUM TENSILE STRENGTH, CLASS, HARDNESS RATING and PACKAGE QUANTITY. The IG also provides the information needed for our analysts to acquire properties and our applications to sequence the properties within the short and long descriptions that are built:
SCREW,SHOULDER – | TYPE: HEX HEAD | MATERIAL: 18-8 STAINLESS STEEL | FINISH: PLAIN | HEAD STYLE: HEX | THREAD SIZE: 3/8-16 INCHES | DRIVE SIZE: 3/4 INCHES | SHOULDER DIAMETER: 1/2 INCHES | SHOULDER LENGTH: 2-1/2 INCHES | THREAD LENGTH: 3/4 INCHES | HEAD DIAMETER: 3/4 INCHES | HEAD HEIGHT: 1/4 INCHES | SHOULDER LENGTH TOLERANCE: ±0.005 INCHES | MINIMUM TENSILE STRENGTH: 80.000 POUND-FORCE PER SQUARE INCH | CLASS: 2A | HARDNESS RATING: B85 TO B95 ROCKWELL A | PACKAGE QUANTITY: 2
Each time an item is submitted for coding or processing the item is imported into a master database. Through intervention by our data analysts, the item navigates its way through a number of checkpoints including an auto-suggest to propose a class. The class and properties via the IG are the requirements our coding analysts use to verify the accuracy of the information submitted, to verify the completeness and to acquire the additional information needed to enhance and build an item or spare part description for our clients to base real business decisions.
The implementation of the eOTD is a two process scenario when working with our clients. First, the legacy data is mapped to the class, the item data is profiled, cleansed and enhanced to meet the requirements of eOTD IG, ensuring the client’s data quality goals are met. The updated item information needs to be applied to existing client item data. It is critical that all changes to data be tracked and logged. A properly planned and executed update to legacy ERP and CMMS systems should be initiated to incorporate the enhanced and corrected item information into the user facing systems. This is an extremely critical step as the downstream information flow will affect systems and uses such as inventory re-distribution, purchasing and contract management, engineering bills of materials and maintenance schedules. A thorough and complete mapping of data through the enterprise should be used to understand data flow across all business units. The mapping should include data entry points and data use points through all departments which set up all of the cost saving pay points as the data processing is streamlined.
The second process is an on-going data maintenance plan for new items that are introduced into the organization. This process should start at the introduction of item information into the system. All items and spare part information should be verified with the manufacturer and classified to the eOTD before setup or use in any system. The length of time the coding process requires is a critical element as the item or spare part information should be as complete as possible while at the same time be ready and waiting for the buyer to put the item on a contact or a maintenance employee to setup the tasking information in the CMMS for a piece of equipment. The only requirement for the employees who use the information after its initial entry into the system is to perform the actual requirement of their job and not to decipher a cryptic unstructured description.
If the items are pre-processed using the eOTD and the associated ISO standards, every item and spare part will be structured and standardized. The engineering, purchasing and maintenance departments will focus on the core of their day to day specialized responsibilities instead of searching for parts or dealing with trying to purchase items that a supplier does not recognize or have to acquire the missing information.
We all agree on some of the basic benefits both in process and cost such as reducing inventory with the identification of duplicate items, facilitation of inventory sharing and internal purchasing programs, reduced employee time searching for parts, common spare part usage strategies, reduced downtime in manufacturing equipment due to lack of information availability and ability to manage using a just in-time inventory model. The eOTD and its Identification guides are the building blocks and the roadmap to achieving structured and accurate data that can be reliably used to base real world decisions.
For more information on the eOTD please visit www.eccma.org.
Tags: automotive, BPO, Business Intelligence, data, Data Cleansing, data quality, DATAForge, dataquality, eOTD, linkedin, maintenance, masterdata, Maximo, mdm, MRO, spare parts
Posted by Jackie Roberts | 1 Comment to View »