*: Results Processor: Processes results from Condor into whatever form the user wishes.
 
+The benifit of using HFC is derived form the fact that reducing the amount of data that needs to be sent over the network will decrease task completion time and increase task frequency.
+
 ----
 **Requirements**
 
@@ -42,6 +44,44 @@
 ----
 **Design**
 
+*Task and Result Encoding*
+
+Tasks and Results will be encoded in classads.  This will make initializing tasks and reading results trivial.  This will also provide a uniform method for transmission of tasks over the network.
+
+*Task Submission*
+
+*Task Transmission*
+
+Task Transmission occurs between the shadow of the worker process and the the starter of the worker process.  Currently, all communication is initialized in the starter using the NTsender interface.  The shadow simply listens for communications from the starter and responds as necessary.
+
+The issue is that as tasks are fed to the shadow by Condor, the shadow should be able to signal the starter that there are tasks available.  In practice this has lead to deadlock conditions in which the starter is attempting to pull form the shadow while the shadow is waiting for an ack from the starter.
+
+*Task Processing*
+
+*Result Processing*
+
+Results processing occurs between the Shadow and a user provided result processing binary (RP).  The shadow will fork the RP which will wait for task results.  When the shadow receives results, it will feed them to the RP via a modified gahp protocol.
+
+The modified gahp protocol will only implement a few of the required commands.  These will include:
+
+*: COMMANDS - returning a listing of all available commands
+*: VERSION - returning a version string of the current HFC gahp implementation
+*: RESULTS_READY - indicating that results are ready for the RP
+*: RESULTS - the user process is ready for more results
+*: RESULTS_PROCESSED - indicating that the results have been processed
+
+The flow will look like this
+
+1: Shadow forks and execs the user RP
+2: Shadow writes gahp version string to let the RP know it's alive
+3: Shadow waits for results (the RP by default will wait too)
+4: Shadow get's results and prints RESULTS_READY
+5: RP prints RESULTS
+6: Shadow write results classad
+7: RP prints RESULTS_PROCESSED
+
+Once RESULTS_PROCESS is received by the shadow, that task is complete and will be removed from the system.
+
 ----
 **Progress**