adding explicit methods for defining each join class and using those in the automatic setup. also allows providing auth functionality in special cases when the core models haven't been loaded yet