       var interleavedChannels:String = interleaveChannelIndex++ + "-" + interleaveChannelIndex++;
 
       var p:String = url.isAbsolute(block.control) ? block.control : contentBase + block.control;
-      return getCommandHeader("SETUP", p) +
-             getCSeqHeader() +
-             getUserAgentHeader() +
-             getSessionHeader() +
+      return "SETUP " + p + " RTSP/1.0\r\n" +
+             "CSeq: " + (++cSeq) + "\r\n" +
+             "User-Agent: " + userAgent + "\r\n" +
+             (session ? ("Session: " + session + "\r\n") : "") +
              "Transport: RTP/AVP/TCP;unicast;interleaved=" + interleavedChannels + "\r\n" +
              "Date: " + new Date().toUTCString() + "\r\n" +
              "\r\n";
     }
 
-
     private function playReq():String {
-      return getCommandHeader("PLAY", contentBase) +
-             getCSeqHeader() +
-             getUserAgentHeader() +
-             getSessionHeader() +
+      return "PLAY " + contentBase + " RTSP/1.0\r\n" +
+             "CSeq: " + (++cSeq) + "\r\n" +
+             "User-Agent: " + userAgent + "\r\n" +
+             "Session: " + session + "\r\n" +
              "\r\n";
     }
 
     private function teardownReq():String {
-      return getCommandHeader("TEARDOWN", contentBase) +
-             getCSeqHeader() +
-             getUserAgentHeader() +
-             getSessionHeader() +
-             "\r\n";
-    }
-
-    private function getCommandHeader(command:String, url:String):String {
-      return command + " " + url + " RTSP/1.0\r\n";
-    }
-
-    private function getCSeqHeader():String {
-      return "CSeq: " + (++cSeq) + "\r\n";
-    }
-
-    private function getUserAgentHeader():String {
-      return "User-Agent: Slush\r\n";
-    }
-
-    private function getSessionHeader():String {
-      return (session ? ("Session: " + session + "\r\n") : "");
-    }
-
-    private function sendRequest(request:String):void {
-      handle.writeUTFBytes(request);
+      return "TEARDOWN" + contentBase + " RTSP/1.0\r\n"+
+             "CSeq: " + (++cSeq) + "\r\n" +
+             "User-Agent: " + userAgent + "\r\n" +
+             "Session: " + session + "\r\n" +
+             "\r\n";
     }
   }
 }

    }

    private function describeReq():String {
      return getCommandHeader("DESCRIBE", urlParsed.urlpath) +
             getCSeqHeader() +
             getUserAgentHeader() +
             "Accept: application/sdp\r\n" +
             "\r\n";
    }


    public function start():void {
      handle.onData(onGetData);
      handle.writeUTFBytes(describeReq());
      state = STATE_DESCRIBE_SENT;
    }

