please add some documentation for the purpose of this class (or really any class)