```\nfunction _marginFeeHandler(MTypes.MarginCallPrimary memory m) private {\n    STypes.VaultUser storage VaultUser = s.vaultUser[m.vault][msg.sender];\n    STypes.VaultUser storage TAPP = s.vaultUser[m.vault][address(this)];\n    // distribute fees to TAPP and caller\n    uint88 tappFee = m.ethFilled.mulU88(m.tappFeePct);\n    uint88 callerFee = m.ethFilled.mulU88(m.callerFeePct) + m.gasFee;\n    m.totalFee += tappFee + callerFee;\n    //@dev TAPP already received the gasFee for being the forcedBid caller. tappFee nets out.\n    if (TAPP.ethEscrowed >= callerFee) {\n        TAPP.ethEscrowed -= callerFee;\n        VaultUser.ethEscrowed += callerFee;\n    } else {\n        // Give caller (portion of?) tappFee instead of gasFee\n        VaultUser.ethEscrowed += callerFee - m.gasFee + tappFee;\n        m.totalFee -= m.gasFee;\n❌      TAPP.ethEscrowed -= m.totalFee;\n    }\n}\n```\n