Total refactoring due to the last wishes of customer.