Changed the code to move flow into a trait to ease reuse and avoid instanciating services for nothing
Created tests
Created trait for dependency injection
Improved business object to be more generic