I think a copy parameter  + return self would be really nice here.