add printKeys() function, update printData() to accomodate projections