implement join() methods