Package Hierarchy

The package hierarchy is used to keep the code organised.