fewer deriving(Copy)'s