Would the constructor be simpler/clearer if there were 3 arguments and the reducer was optional?