completed rules and circularity
merge