Refactoring classes, splitting them to smaller pieces and general logic fixing is needed.
Refactoring classes, splitting them to smaller pieces and general logic fixing is needed.