start implementing JoinListBuffer -- v confused might revisit