change interface for enumerate_states