Rewritten without any of those pesky memory hogs called String