implement tracking modes with switches