handle string input well