Better use of dependency injection, refactored package names to plural, added comments to src files.