Added first implementation modified from MControl.