code: func NewSimpleHeart(id, location string, interval time.Duration, pool *redis.Pool,
  	strategy Strategy) SimpleHeart {
  
  	sh := SimpleHeart{
  		ID:       id,
  		Location: location,
  		Interval: interval,
  
  		pool: pool,
  
  		closer:   make(chan struct{}),
  		errs:     make(chan error, 1),
  		strategy: strategy,
  	}
  
  	go sh.heartbeat()
  	sh.touch()
  
  	return sh
  }
docs: // New allocates and returns a new instance of a SimpleHeart, initialized with
  // the given parameters.
  //
  // pool is the *redis.Pool of which the Heart will take connections from.
  //
  // location is the location in the Redis keyspace wherein the heartbeat will be
  // stored. Similarily, `id` is the ID of the given Heart that will be touched in
  // that location.
  //
  // strategy is the Strategy that will be used to Touch() the keyspace in Redis
  // at the given interval.
  //
  // Both the closer and errs channel are initialized to new, empty channels using
  // the builtin `make()`.
  //
  // It begins ticking immediately.