saved current state;
some enhancement;