Refactored class properties
Refactored test and usage test
Make all public final classes just public classes
Adds a Summary method