Define an extension of data.frame that supports more metadata