some states logic

and go on!