Make all the getters not inline
Add cycle detection during update
Fix bug in cycle detection