data is now held in a hash (correctly)