prefix everything public & typedefs
better portability