implement join builtin