row should be a dict