on() must be like this to return correct length for both cases.