Recursively create custom types inside custom types