diff --git a/src/transaction.js b/src/transaction.js
index f7935d9..e5ee989 100644
--- a/src/transaction.js
+++ b/src/transaction.js
@@ -17,28 +17,11 @@ var SIGHASH_NONE = 0x02
 var SIGHASH_SINGLE = 0x03
 var SIGHASH_ANYONECANPAY = 0x80
 
-function Transaction(doc) {
-  if (!(this instanceof Transaction)) { return new Transaction(doc) }
+function Transaction() {
   this.version = 1
   this.locktime = 0
   this.ins = []
   this.outs = []
-
-  if (doc) {
-    if (doc.version) this.version = doc.version;
-    if (doc.locktime) this.locktime = doc.locktime;
-    if (doc.ins && doc.ins.length) {
-      this.ins = doc.ins.map(function(input) {
-        return new TransactionIn(input)
-      })
-    }
-
-    if (doc.outs && doc.outs.length) {
-      this.outs = doc.outs.map(function(output) {
-        return new TransactionOut(output)
-      })
-    }
-  }
 }
 
 /**
@@ -256,12 +239,10 @@ Transaction.fromBuffer = function(buffer) {
     return vi.number
   }
 
-  var ins = []
-  var outs = []
+  var tx = new Transaction()
+  tx.version = readUInt32()
 
-  var version = readUInt32()
   var vinLen = readVarInt()
-
   for (var i = 0; i < vinLen; ++i) {
     var hash = readSlice(32)
     var vout = readUInt32()
@@ -269,7 +250,7 @@ Transaction.fromBuffer = function(buffer) {
     var script = readSlice(scriptLen)
     var sequence = readUInt32()
 
-    ins.push(new TransactionIn({
+    tx.ins.push(new TransactionIn({
       outpoint: {
         hash: hash,
         index: vout
@@ -280,27 +261,21 @@ Transaction.fromBuffer = function(buffer) {
   }
 
   var voutLen = readVarInt()
-
   for (i = 0; i < voutLen; ++i) {
     var value = readUInt64()
     var scriptLen = readVarInt()
     var script = readSlice(scriptLen)
 
-    outs.push(new TransactionOut({
+    tx.outs.push(new TransactionOut({
       value: value,
       script: Script.fromBuffer(script)
     }))
   }
 
-  var locktime = readUInt32()
+  tx.locktime = readUInt32()
   assert.equal(offset, buffer.length, 'Invalid transaction')
 
-  return new Transaction({
-    version: version,
-    ins: ins,
-    outs: outs,
-    locktime: locktime
-  })
+  return tx
 }
 
 Transaction.fromHex = function(hex) {