next and state are redundant