Razvan reviewed the code and suggested a number of changes to improve readability and make facets of the code more explicit and consistent.
The GST namespace has been added to prevent class name conflicts, and the project has been reorganized to make extensions and purpose easier.