Deal with multiple effect choices, and add state hashing