Reorganize the structure. Use Factories to impolement dependency inject. Add Test for every class except factories