functional: update to work with new state models