more elegant way to specfify which stuff to copy and in what order
specs for order of copy association calls