private void Update()
        {
            var currentPosition = new Vector2(transform.position.x, transform.position.y);

            if (Physics2D.OverlapBoxAll(currentPosition + probeOrigin, probeSize, 0).Length == 0)
            {
                outputText.text = "No Sample";
            }

            int      detectedSamples = 0;
            CompDict composition     = new CompDict();

            foreach (var item in Physics2D.OverlapBoxAll(currentPosition + probeOrigin, probeSize, 0))
            {
                var liquid = item.GetComponent <Liquid>();
                if (liquid == null)
                {
                    continue;
                }
                detectedSamples++;
                foreach (var kvp in liquid.Composition)
                {
                    if (composition.ContainsKey(kvp.Key))
                    {
                        composition[kvp.Key] = composition[kvp.Key] + kvp.Value;
                    }
                    else
                    {
                        composition.Add(kvp.Key, kvp.Value);
                    }
                }
            }

            if (detectedSamples == 0)
            {
                outputText.text = "No Sample";
            }
            else
            {
                //normalize results
                Liquid.Normalize(composition);

                outputText.text = Liquid.GetComposition(composition);
            }
        }