Add support for arbitrary record types