make use of cascading typedefs