protected function read($chunk)
	{
		if ( ! is_string($chunk) && $chunk !== false) {
			throw new \InvalidArgumentException(
				__METHOD__."() expects parameter one, chunk, to be a string or false"
			);
		}
		
		$this->characters = [];
		
		// if $chunk is not false and not empty...
		// keep in mind, the single-byte strlen() function is ok here, I just want
		//     to be sure the string isn't empty; otherwise, the characters array
		//     will have an empty string as an element (e.g., [''])
		// also, don't use PHP's native empty() method here either; empty() will
		//     consider "0" an empty string, but it's a valid value
		//
		if (is_string($chunk) && strlen($chunk) > 0) {
			// get the chunk's length
			$len = mb_strlen($chunk, $this->chunker->getEncoding());
			// loop through the chunk's characters
			for ($i = 0; $i < $len; ++$i) {
				// append the character to the characters array...
				// I (Jack) tried using mb_split('//', $chunk) here; however, it 
				//     didn't split the string into characters as expected
				//
				$this->characters[] = mb_substr(
					$chunk, $i, 1, $this->chunker->getEncoding()
				);
			}	
		}
		
		return;
	}