trying to get rid of typedefs