used StringBuilder for large string concatenations