code: func InitializeThreads() {
  	//c, err := net.Dial(proto, address)
  	//conn = c
  
  	in = In{
  		Commands:         make(chan *commands.Command),
  		CommandResponses: make(chan *commands.CommandResponse),
  		Quit:             make(chan int),
  	}
  
  	out = Out{
  		CommandResponses: make(chan commands.CommandResponse),
  		Errors:           make(chan error),
  	}
  
  	go Reader(&out, &in)
  	go Writer(&out, &in)
  
  	go func() {
  		fmt.Println("Registering signals")
  		p := []os.Signal{syscall.SIGINT}
  		c := make(chan os.Signal, len(p))
  		signal.Notify(c, p...)
  
  		for s := range c {
  			fmt.Println("Getting signal ", s)
  			if s == os.Interrupt || s == os.Kill {
  				fmt.Println("Finishing clean up quiting")
  				CleanExit()
  				return
  			}
  		}
  	}()
  	return
  }
docs: /*
  Initializes threads with Channel Structs
  Opens Connection
  */