derive Eq and Clone impls where applicable