make sure it return data is hash