it helps to do the typedef correctly