use new function ring