replace static field with static function-singleton