explicitly require set