During the refactor, i saw that the __init variables that we used to memcpy are still in the code but not always used.
A quick check told me that they might be still needed for some code pathes so i did not remove them.
I would like to go through the usecases and eventually get rid of the redudant / stale initialization logic. Any type should go through ctor calls instead of memcpy