Create full programming code for BEP20 crypto token smart contract. It has to have:
1. contract proxy import library and usage in code(upgradability to version 2 by owner) 
2.owner 
3.send initial supply to smart contract and owner. 
4.be payable. 
5.mintable by anyone for paying BNB. 
6.owner can remove contract address ETH. 
7.have uniswap liquidity features (add liquidity, set liquidity pair, remove liquidity by owner to owners crypto wallet address, removeliquidityETH by owner to owners crypto wallet address, swaptokensforexacteth by owner). 
8.have constructor. 
9.take fee from every transaction and add owner and liquidity pool. 
10.be modifiable by owner. 
11.can change owner. 
12.coin  holders can buy token but can't sell. 
13.have all possible features which is not mentioned and and imports from openzeppelin. 
14.Include all necessary imports to token class.