private void buttonCalculate_Click(object sender, EventArgs e)
        {
            // try to parse user given coordinates...
            string startingCoords = maskedTextBoxStartCoord1.Text + " " + maskedTextBoxStartCoord2.Text;
            string endCoords      = maskedTextBoxEndCoord1.Text + " " + maskedTextBoxEndCoord2.Text;

            try
            {
                logic.startingPoint = Gps.GpsLocation.Parse(startingCoords);
                logic.endPoint      = Gps.GpsLocation.Parse(endCoords);
            }
            catch (FormatException ex)  // user given coordinates were invalid
            {
                toolTipCoords.Show("Please check the starting/end coordinates", buttonCalculate, 130, 0, 5000);
                return;
            }

            // ... start/end coordinates correct
            // try to parse gpx file
            try
            {
                using (FileStream stream = File.Open(textBoxDirectory.Text, FileMode.Open))
                {
                    try
                    {
                        logic.gpxData = GpxParser.parseGpx(stream);
                    }
                    catch
                    {
                        toolTipCoords.Show("Couldn't read .gpx file", buttonCalculate, 130, 0, 5000);
                    }
                }

                CalculationResult result = logic.calculate();
                displayResult(result);
            }
            catch (System.Security.SecurityException sEx)
            {
                toolTipDirectory.Show("I have no permission to read this file", buttonCalculate, 130, 0, 5000);
            }/*
              * catch (Exception ex)
              * {
              * toolTipDirectory.Show("Please check the the directory", buttonCalculate, 130, 0, 5000);
              * }*/
        }