diff --git a/test/LiquidTerm.t.sol b/test/LiquidTerm.t.sol
index 05383d1..f9daa07 100644
--- a/test/LiquidTerm.t.sol
+++ b/test/LiquidTerm.t.sol
@@ -9,45 +9,11 @@ import {ERC1155} from "openzeppelin-contracts/contracts/token/ERC1155/ERC1155.so
 import {ERC1155Supply} from "openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol";
 
 import {Term} from "src/Term.sol";
+import {LiquidTerm} from "src/LiquidTerm.sol";
 
 import {Test} from "forge-std/Test.sol";
 import {console} from "forge-std/console.sol";
 
-contract LiquidTerm is ERC20 {
-    IERC1155 public immutable registry;
-    uint256 public immutable tokenId;
-
-    constructor(
-        IERC1155 _registry,
-        uint256 _tokenId
-    ) ERC20("Liquid Term", "ltrUSD") {
-        registry = _registry;
-        tokenId = _tokenId;
-    }
-
-    function totalSupply() public view override returns (uint256) {
-        try ERC1155Supply(address(registry)).totalSupply(tokenId) returns (
-            uint256 amount
-        ) {
-            return amount;
-        } catch {
-            return 0;
-        }
-    }
-
-    function balanceOf(address account) public view override returns (uint256) {
-        return registry.balanceOf(account, tokenId);
-    }
-
-    function _transfer(
-        address from,
-        address to,
-        uint256 amount
-    ) internal override {
-        registry.safeTransferFrom(from, to, tokenId, amount, "");
-    }
-}
-
 // TODO: Liquid Term => Fungible Term
 // TODO: Get term contract address from the token
 
@@ -73,17 +39,39 @@ contract LiquidTermTest is Test {
         vm.prank(eoa2);
         term.setApprovalForAll(address(this), true);
 
-        lTerm00 = new LiquidTerm(IERC1155(address(term)), 0);
-        lTerm01 = new LiquidTerm(IERC1155(address(term)), 1);
-        lTerm02 = new LiquidTerm(IERC1155(address(term)), 2);
-        lTerm03 = new LiquidTerm(IERC1155(address(term)), 3);
+        lTerm00 = new LiquidTerm("Liquid Term", "ltrUSD-00", address(term), 0);
+        lTerm01 = new LiquidTerm("Liquid Term", "ltrUSD-01", address(term), 1);
+        lTerm02 = new LiquidTerm("Liquid Term", "ltrUSD-02", address(term), 2);
+        lTerm03 = new LiquidTerm("Liquid Term", "ltrUSD-03", address(term), 3);
     }
 
     function testInitialState() external {
-        assertTrue(term.hasRole(0x00, address(this)));
+        assertEq(lTerm00.tokenId(), 0);
+        assertEq(lTerm00.registry(), address(term));
+
+        assertEq(lTerm00.symbol(), "ltrUSD-00");
+        assertEq(lTerm00.name(), "Liquid Term");
+
+        assertEq(lTerm01.tokenId(), 1);
+        assertEq(lTerm01.registry(), address(term));
+
+        assertEq(lTerm02.symbol(), "ltrUSD-02");
+        assertEq(lTerm02.name(), "Liquid Term");
+
+        assertEq(lTerm02.tokenId(), 2);
+        assertEq(lTerm02.registry(), address(term));
+
+        assertEq(lTerm02.symbol(), "ltrUSD-02");
+        assertEq(lTerm02.name(), "Liquid Term");
+
+        assertEq(lTerm03.tokenId(), 3);
+        assertEq(lTerm03.registry(), address(term));
+
+        assertEq(lTerm03.symbol(), "ltrUSD-03");
+        assertEq(lTerm03.name(), "Liquid Term");
     }
 
-    function testMint() external {
+    function testBalanceAndTotalSupply() external {
         term.grantRole(term.MINTER(), address(this));
 
         term.mint(eoa1, 0, 1_000e18);
@@ -127,7 +115,7 @@ contract LiquidTermTest is Test {
         assertEq(lTerm03.balanceOf(eoa4), 1_000e18);
     }
 
-    function testTransferSuccess01() external {
+    function testTransfer() external {
         address receiver = vm.addr(uint256(keccak256("receiver")));
 
         term.grantRole(term.MINTER(), address(this));
@@ -193,68 +181,4 @@ contract LiquidTermTest is Test {
         assertEq(lTerm03.balanceOf(receiver), 1e18);
         assertEq(lTerm03.balanceOf(eoa4), 999e18);
     }
-
-    function testTransferSuccess02() external {
-        assertTrue(true);
-    }
-
-    function testTransferFailure() external {
-        assertTrue(true);
-    }
-
-    // function testBurn() external {
-    //     term.grantRole(term.MINTER(), address(this));
-
-    //     term.mint(eoa1, 0, 12);
-    //     term.mint(eoa2, 1, 26);
-    //     term.mint(eoa2, 2, 1042);
-
-    //     term.burn(eoa1, 0, 8);
-
-    //     term.burn(eoa2, 1, 1);
-    //     term.burn(eoa2, 1, 12);
-    //     term.burn(eoa2, 2, 18);
-
-    //     assertEq(term.balanceOf(eoa1, 0), 4);
-    //     assertEq(term.balanceOf(eoa1, 1), 0);
-    //     assertEq(term.balanceOf(eoa1, 2), 0);
-
-    //     assertEq(term.balanceOf(eoa2, 0), 0);
-    //     assertEq(term.balanceOf(eoa2, 1), 13);
-    //     assertEq(term.balanceOf(eoa2, 2), 1024);
-
-    //     assertEq(term.totalSupply(0), 4);
-    //     assertEq(term.totalSupply(1), 13);
-    //     assertEq(term.totalSupply(2), 1024);
-    // }
-
-    // function testTransfer() external {
-    //     term.grantRole(term.MINTER(), address(this));
-
-    //     term.mint(eoa1, 0, 12);
-    //     term.mint(eoa2, 1, 26);
-    //     term.mint(eoa2, 2, 1042);
-
-    //     term.safeTransferFrom(eoa1, eoa2, 0, 8, "");
-
-    //     assertEq(term.balanceOf(eoa1, 0), 4);
-    //     assertEq(term.balanceOf(eoa2, 0), 8);
-
-    //     uint256[] memory ids = new uint256[](2);
-    //     uint256[] memory amounts = new uint256[](2);
-
-    //     ids[0] = 1;
-    //     ids[1] = 2;
-
-    //     amounts[0] = 26;
-    //     amounts[1] = 34;
-
-    //     term.safeBatchTransferFrom(eoa2, eoa1, ids, amounts, "");
-
-    //     assertEq(term.balanceOf(eoa1, 1), 26);
-    //     assertEq(term.balanceOf(eoa1, 2), 34);
-
-    //     assertEq(term.balanceOf(eoa2, 1), 0);
-    //     assertEq(term.balanceOf(eoa2, 2), 1008);
-    // }
 }