fix a bug: an unhandled case in switch