// ***************** MouseListener *****************
  public void mouseReleased(MouseEvent e) {
    currentX = getGraphCoordinateX(e.getX());
    currentY = getGraphCoordinateY(e.getY());

    MoleculeComponent clickedOn = elist.getClickedComponent(e.getX(), e.getY());

    if (drawArrowLine || drawBondLine) // if connection is being made
    {
      if (clickedOn != null && elist.getSelected() != null) // if released on valid component
      {
        if (clickedOn.getClass() == Element.class
            && (rightPressed && !leftPressed)) { // if it's a bond
          elist.add(new Bond(elist.getSelected(), clickedOn));
        } else if (clickedOn.getClass() == Element.class && (leftPressed && !rightPressed)) {
          elist.add(new Arrow(elist.getSelected(), clickedOn));
        }
      }

      drawArrowLine = false;
      drawBondLine = false;

      repaint();
    } else // connection is not being made
    {
      if (clickedOn != null) // if released on valid component
      {

      } else // Didn't click on valid component
      {
        if (leftPressed && !rightPressed) // If mouse button clicked was left
        {
          elist.add(new Element(currentX, currentY));
        }
      }
    }
  }