public bool Add (Hit hit, Tile tile)
		{
			bool changed = false;
			
			HitTilePair pair = new HitTilePair (hit, tile);
			int i = all_hits.BinarySearch (pair);
			all_hits.Insert (i < 0 ? ~i : i, pair);
			if (i == 0 || i < LastDisplayed) {
				Changed ();
				changed = true;
			}

			if (SourceIsDisplayable (hit)) {
				if (InsertDisplayable (pair))
					changed = true;
			}

			return changed;
		}
		private bool InsertDisplayable (HitTilePair pair)
		{
			int i = hits.BinarySearch (pair);
				
			hits.Insert (i < 0 ? ~i : i, pair);
			if (i == 0 || i < LastDisplayed) {
				Changed ();
				return true;
			}

			return false;
		}