refactoring: improves variable and method naming
perf: removes accumulated sub-combinations
cleaning: removes blank lines
refactoring: renames object
refactoring: respects data encapsulation