Use callback to avoid east breakage instead of __toString.