finishes with rule transformations
new interface
new interface