Change to join with timeout, add logging