Buy NFT using Flow Coins in the testnet

Hey everyone, I want to buy an NFT using the Flow coins in my testnet account. Presently, a user deposits his NFT into the Admin account’s public collection and then the other user buy it from the Admin, then the Admin gets paid and this payment is transferred to the first user. But, I don’t think this is an authentic way to exchange NFT between accounts and transfer funds. Is there a more secure and authentic way to do this? Like there should be a contract in the middle. I don’t wanna exchange our own Fungible Tokens, I want to exchange NFT the Flow coin balance available with user. I don’t wanna mint anything new except NFT. Please help me out.

Check out the NFT storefront contract! GitHub - onflow/nft-storefront: A general-purpose Cadence contract for trading NFTs on Flow

We use an example token in the NFT repo, but you can use any token you want for that. In the NFT storefront specifically, it explicitly provides support for any fungible token, including FLOW