support set by callback