Add notion of exclusive permits. Move StateManager usage to higher level API