use heap not stack for strings