get$(`${sample[4]}/api/deck/new/shuffle/`)
.pluck('deck_id')
.flatMap( deck_id => obs.range(1,52)
.flatMap( x => get$(`${sample[4]}/api/deck/${deck_id}/draw/`), 5)
.pluck('cards')
.pluck('0')
.filter( card => !isNaN(card.value) )
.bufferCount(3)
.scan((acc, cards) => ({ n: acc.n+1, cards }), {n: 1} )
.groupBy(s => s.n % 2 + 1)
.take(2)
.map(stream => stream
.flatMap(s => obs.from(s.cards))
.flatMap(card =>
get$(`${sample[4]}/api/deck/${deck_id}/pile/${stream.key}/add/?cards=${card.code}`)
.map(x => card))
.pluck('image')
.map(src => html`<img width=80 src=${src}>`)
.scan((acc,image) => (acc.appendChild(image), acc), html`<div>Player ${stream.key}<br>`))
.map(stream => stream.shareReplay())
.do(stream => stream.subscribe())
.combineAll((x,y) => html`<div>${x}${y}`)
.finally(x => currentDeck.next(deck_id)))
.value()