decode rather than cast to string