refactoring ugly typedefs...