leave room for null terminator