Association review crud

Just review of the main source, not tests.  Tried to have each commit be meaningful.