Refactored everything. Now uses LightInject