Since this struct has methods I wanted to be clear that its all public (since some might see the methods and assume it is a class.  Is that bad?  I can remove it if it bugs you.