need to use DictCursorFactory