workable state, rewrite