I've been following the advice from T=Machine's blog in that space.  They don't have to be public, but it puts emphasis on components as data types.