TODO: initialization order wrt nested objects