cross compatible type