Referring to performance is always a vague argument, in fact I did it that way just following your implementation of signal level parsing. 
I don't really want now to a comparative performance testing, so probably will just do it the way you propose, it doesn't matter that much. Will commit it later when I'll get to it.