Do fancy things with data. incomplete and untested.