looks like moving to a route-based state calculation model will be easy