diff --git a/block.go b/block.go
index f8bf2ce3bfd9bb28e254cc4cda0d13c6b6558138..f666b09db16382f4bfefcda9482866e349708137 100644
--- a/block.go
+++ b/block.go
@@ -1,7 +1,7 @@
 package main
 
 import (
-  _"fmt"
+  "fmt"
   "time"
 )
 
@@ -44,21 +44,28 @@ func (block *Block) MarshalRlp() []byte {
     encTx[i] = string(tx.MarshalRlp())
   }
 
-  enc := RlpEncode([]interface{}{
+  header := []interface{}{
     block.number,
-    block.prevHash,
+    //block.prevHash,
     // Sha of uncles
-    block.coinbase,
+    //block.coinbase,
     // root state
-    Sha256Bin([]byte(RlpEncode(encTx))),
-    block.difficulty,
-    block.time,
-    block.nonce,
+    //Sha256Bin([]byte(RlpEncode(encTx))),
+    //block.difficulty,
+    //block.time,
+    //block.nonce,
     // extra?
-  })
+  }
 
-  return []byte(enc)
+  return Encode([]interface{}{header, encTx})
 }
 
 func (block *Block) UnmarshalRlp(data []byte) {
+  fmt.Printf("%q\n", data)
+  t, _ := Decode(data,0)
+  if slice, ok := t.([]interface{}); ok {
+    if txes, ok := slice[1].([]interface{}); ok {
+      fmt.Println(txes[0])
+    }
+  }
 }
diff --git a/ethereum.go b/ethereum.go
index 78f08c15e1d1624241fc6a66f329198773f5e931..d3cecdc94a7636b495f8ade1377cd922496f5a04 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -9,7 +9,7 @@ func main() {
 
   bm := NewBlockManager()
 
-  tx := NewTransaction(0x0, 20, []string{
+  tx := NewTransaction("\x00", 20, []string{
     "SET 10 6",
     "LD 10 10",
     "LT 10 1 20",
@@ -23,13 +23,18 @@ func main() {
     "SET 255 15",
     "JMP 255",
   })
-  tx2 := NewTransaction(0x0, 20, []string{"SET 10 6", "LD 10 10"})
+  txData := tx.MarshalRlp()
+
+  copyTx := &Transaction{}
+  copyTx.UnmarshalRlp(txData)
+
+
+  tx2 := NewTransaction("\x00", 20, []string{"SET 10 6", "LD 10 10"})
 
   blck := NewBlock([]*Transaction{tx2, tx})
 
   bm.ProcessBlock( blck )
 
-  //fmt.Printf("rlp encoded Tx %q\n", tx.MarshalRlp())
-  fmt.Printf("block enc %q\n", blck.MarshalRlp())
-  fmt.Printf("block hash %q\n", blck.Hash())
+  //t := blck.MarshalRlp()
+  //blck.UnmarshalRlp(t)
 }