moar typedefs