public void Update(IEntities entities, TimeSpan delta)
        {
            _mouse = _mouse.Current();

            if (!_mouse.IsOnGameScreen)
            {
                return;
            }

            entities.WithTopMost <MouseStateActions>(_mouse.WorldPosition,
                                                     (o, m) =>
            {
                if (!o.World.Intersects(_mouse.WorldPosition))
                {
                    m.Exit();
                }
                else if (!o.World.Intersects(_mouse.LastWorldPosition))
                {
                    m.Hover();
                }
                else if (_mouse.JustPressed(m.Button))
                {
                    m.Click();
                }
                else if (_mouse.JustReleased(m.Button))
                {
                    m.Release();
                }
            },
                                                     (o, m) => m.Exit());
        }