Use a dispatch table (array of selectors) instead?