void setBytes( String ur, String desc, String tm )
	{
		try
		{
			setGrbit();
			int pos = 32;    // start of description/text input

			byte[] blankbytes = new byte[2];    // trailing zero word
			byte[] newbytes = new byte[pos];
			System.arraycopy( mybytes, 0, newbytes, 0, pos ); // copy old pre-string data into new array

			if( hasDescription )
			{
				// copy char array length (cch) of description + description bytes
				byte[] descbytes = desc.getBytes( UNICODEENCODING );
				int newcch = descbytes.length;
				byte[] newcchbytes = ByteTools.cLongToLEBytes( (newcch / 2) + 1 );

				// copy cch of desc in...
				newbytes = ByteTools.append( newcchbytes, newbytes );

				//copy bytes of description in
				newbytes = ByteTools.append( descbytes, newbytes );
				// copy trailing dumb str bytes in
				newbytes = ByteTools.append( blankbytes, newbytes );
			}

			/* TODO:  Implement target frame right here
			if (hasTargetFrame) {
				// copy targetFrame bytes + length
				// get cch
				byte[] tfbytes= tf.getBytes(UNICODEENCODING);
	            int newcch = tfbytes.length;
				byte[] newcchbytes = ByteTools.cLongToLEBytes(newcch/2 +1);
				// copy cch of tm in...
				newbytes = ByteTools.append(newcchbytes, newbytes);

				//copy bytes of tf in
				newbytes = ByteTools.append(tfbytes, newbytes);

				// copy trailing dumb str bytes in
				newbytes = ByteTools.append(blankbytes, newbytes);
			}
			*/

			/* URL Handling */
			// copy GUID in - ASSUME URL_GUID since aren't supporting relative FILE_GUIDs!
			newbytes = ByteTools.append( URL_GUID, newbytes );

			if( isLink )
			{
				// copy url bytes + length
				// get cch (which is different alg. from both description + textmark)
				byte[] urlbytes = ur.getBytes( UNICODEENCODING );
				int newcch = urlbytes.length;

				// copy cch of url in...
				byte[] newcchbytes = ByteTools.cLongToLEBytes( newcch + 2 );
				newbytes = ByteTools.append( newcchbytes, newbytes );

				// copy url bytes in
				newbytes = ByteTools.append( urlbytes, newbytes );

				// copy trailing dumb str bytes in
				newbytes = ByteTools.append( blankbytes, newbytes );
			}

			if( hasTextMark )
			{
				// copy textmark bytes + length
				// get cch
				byte[] tmbytes = tm.getBytes( UNICODEENCODING );
				int newcch = tmbytes.length;
				byte[] newcchbytes = ByteTools.cLongToLEBytes( (newcch / 2) + 1 );
				// copy cch of tm in...
				newbytes = ByteTools.append( newcchbytes, newbytes );

				//copy bytes of tm in
				newbytes = ByteTools.append( tmbytes, newbytes );

				// copy trailing dumb str bytes in
				newbytes = ByteTools.append( blankbytes, newbytes );
			}
			mybytes = newbytes;

			linktext = desc;
			textMark = tm;
			url = ur;
		}
		catch( UnsupportedEncodingException e )
		{
			log.warn( "Setting URL failed: " + ur + ": " + e );
		}
	}