ring functionality