added lazy memory allocation. memory for strin is only allocated upon adding.