avoid type casting