Add support for recursive schema