always use .slice for substrings, save a few bytes