why does this include string.h?