Merged local and remote changes in this version.
Local version had the junction table and some methods
using it.  I think the merge is sane but let me know
if it's not.

 Please enter the commit message for your changes. Lines starting