#CodeSmell 04: Function receiving too many arguments
Problems: Low maintainability. Low Reuse. Coupling
Solutions
1) Find cohesive relations among arguments
2) Create a "context"
3) Consider using a MethodObject Pattern
4) Avoid "basic" Types, Specially arrays. Think on objects