reworked the script to include all part information into a list of objects