It doesn't compile if i remove the typedefs here. Will complain that it's undefined.