return a dict instead of string