generic record implemention plus support for multiple records under a name