conform rule next state impl. + tests