refactor circleHanler