Looks goot. But we have to create a copy with factory. Like `copy(factory)`.