rate detection works on graphs instead of trees
Merge branch 'side-effect'
adds side effects