private ModelComponent getRolloverComponent(int x, int y) {
		ModelComponent lc = whichLayeredComponent(x, y);
		if (lc != null && ((Layered) lc).getLayer() == Layered.IN_FRONT_OF_PARTICLES)
			return lc;
		Atom at = whichAtom(x, y);
		if (at != null) {
			if (molecules.isEmpty())
				return at;
			Molecule mol = molecules.getMolecule(at);
			if (mol != null)
				return mol;
			return at;
		}
		MolecularObject mo = whichMolecularObject(x, y);
		if (mo != null)
			return mo;
		RectangularObstacle obs = whichObstacle(x, y);
		if (obs != null)
			return obs;
		RadialBond rBond = whichBond(x, y);
		if (rBond != null)
			return rBond;
		AngularBond aBond = whichAngle(x, y);
		if (aBond != null)
			return aBond;
		if (lc != null && ((Layered) lc).getLayer() == Layered.BEHIND_PARTICLES)
			return lc;
		return null;
	}