(BY: mark) This new feature function is developed by mark