offer state diagram