Fixed toString() error
Simplifying everything in the class structure and adding documentation.