I'd suggest to initialize also `circle` and `polygon` variables. From a functional point of view, it wouldn't be necessary, but we have add problems in the past due to buggy code that behaves different in different system due to "random initialization" of "free variables" in struct constructors.