regenerate token
add docblock
join multiple relations, prevent overlapping joins