moved implementation of list::join into a separate include file