One thing that would avoid a lot of copy-paste is if Part structs support clone() and/or copy(). Thanks!