move remainder out of playground & clarify types