avoid type confusion