Tidied up the package structure to better reflect the design