Circular refactor