copy paste design pattern