refactoring, add containers, use units for variable expenses