Introduced more packages in order to get a more structured codebase