How to Transfer NFT

I have recently learned how to make a NFT and mint it using javascript by the use of metaplex JDK. Opened to me a lot of new possibilities.

To my knowledge…a NFT is a special kind of token where i can define properties and define the quantity…and it cant be broken into parts.

Being a NFT i created it on my account and used a code I already have working to make a token transfer from one wallet to another. And it game me a fail.

The process I am doing to send a nft from one account to another is them same i do for tokens:
1- get the wallet: var toWallet = web3.Keypair.fromSecretKey(RECEIVERSECRET)
2- prepare mint from token public key: var myMint = new web3.PublicKey(token);
3- get token: var myToken = new splToken.Token(
connection,
myMint,
splToken.TOKEN_PROGRAM_ID,
LPWallet
);
4- create account to receive token:
myToken.getOrCreateAssociatedAccountInfo(toWallet.publicKey)

5- create transaction and send it
var transaction = new web3.Transaction({
feePayer: LPWallet.publicKey
})
.add(
splToken.Token.createTransferInstruction(
splToken.TOKEN_PROGRAM_ID,
fromTokenAccount.address,
toTokenAccount.address,
fromWallet.publicKey,
,
lamportQuantity
)
);

					  // Sign transaction, broadcast, and confirm
					  web3.sendAndConfirmTransaction(connection,transaction,[LPWallet,fromWallet] )

it gave the following strange error:

transferToken

Function execution started

|11:39:39.068 PM||transferToken

Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]

|11:39:39.068 PM||transferToken

Program log: Error: insufficient funds

|11:39:39.068 PM||transferToken

Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 2558 of 200000 compute units|
| — | — |

Anyone knows what i did wrong?