now uses join models to allow roles on artist>thing joins (producer, remixer, cover artist, ...)