use dynamic char array so we won't run out of room