void OnTriggerStay(Collider other)
    {
        bool crossPossible = other.tag == "Player" && ReadyToCross() && Input.GetButton("Jump");

        if (!crossPossible)
        {
            return;
        }
        SpecimenFeaturesManager thisManager  = GetComponent <SpecimenFeaturesManager> ();
        SpecimenFeaturesManager otherManager = other.GetComponent <SpecimenFeaturesManager> ();
        Tuple <SpecimenFeatures, SpecimenFeatures> result =
            genetics.Cross(thisManager.features, otherManager.features);

        thisManager.NewFeatures(result.First);
        otherManager.NewFeatures(result.Second);
        lastCross = Time.time;
        movement.PlayerLeft();
        Debug.Log(
            "Cross finished:\n" +
            "in: " + thisManager.features.ToString() + "\n" +
            "in: " + otherManager.features.ToString() + "\n" +
            "out: " + result.First.ToString() + "\n" +
            "out: " + result.Second.ToString() + "\n"
            );
    }