better join renders numbers nicely and recurses into sub-lists