fixed share state logic