add functions: Join, GroupJoin
add design