locations use templates now.  fix some recent bugs.  add design doc