separating out types.h into sub headers