use IString everywhere