derive Clone, instead to implementing it