Added move semantics for variant