add guessType support