handle default cases better.