diff --git a/core/src/main/java/io/bitsquare/gui/main/debug/DebugView.java b/core/src/main/java/io/bitsquare/gui/main/debug/DebugView.java
index d4461ba103..a27ad96f8d 100644
--- a/core/src/main/java/io/bitsquare/gui/main/debug/DebugView.java
+++ b/core/src/main/java/io/bitsquare/gui/main/debug/DebugView.java
@@ -28,30 +28,30 @@ import io.bitsquare.trade.protocol.placeoffer.tasks.AddOfferToRemoteOfferBook;
import io.bitsquare.trade.protocol.placeoffer.tasks.BroadcastCreateOfferFeeTx;
import io.bitsquare.trade.protocol.placeoffer.tasks.CreateOfferFeeTx;
import io.bitsquare.trade.protocol.placeoffer.tasks.ValidateOffer;
-import io.bitsquare.trade.protocol.trade.buyer.BuyerAsOffererProtocol;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessRequestPublishDepositTxMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.ProcessRequestDepositTxInputsMessage;
-import io.bitsquare.trade.protocol.trade.seller.SellerAsTakerProtocol;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsPayoutTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSignsAndPublishPayoutTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SendRequestDepositTxInputsMessage;
-import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
-import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.VerifyOfferFeePayment;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.VerifyOffererAccount;
+import io.bitsquare.trade.protocol.trade.BuyerAsOffererProtocol;
+import io.bitsquare.trade.protocol.trade.SellerAsTakerProtocol;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCreatesAndSignPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCreatesDepositTxInputs;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerProcessPayoutTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerProcessRequestPublishDepositTxMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsDepositTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsFiatTransferStartedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsRequestPayDepositMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSignsAndPublishDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.ProcessRequestDepositTxInputsMessage;
+import io.bitsquare.trade.protocol.trade.tasks.offerer.VerifyTakeOfferFeePayment;
+import io.bitsquare.trade.protocol.trade.tasks.offerer.VerifyTakerAccount;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCommitDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCreatesAndSignsDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessDepositTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessFiatTransferStartedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessRequestPayDepositMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSendsPayoutTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSignsAndPublishPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SendRequestDepositTxInputsMessage;
+import io.bitsquare.trade.protocol.trade.tasks.taker.CreateTakeOfferFeeTx;
+import io.bitsquare.trade.protocol.trade.tasks.taker.VerifyOfferFeePayment;
+import io.bitsquare.trade.protocol.trade.tasks.taker.VerifyOffererAccount;
import java.util.Arrays;
diff --git a/core/src/main/java/io/bitsquare/trade/BuyerAsOffererTrade.java b/core/src/main/java/io/bitsquare/trade/BuyerAsOffererTrade.java
index 0aaac5dce1..824df2532e 100644
--- a/core/src/main/java/io/bitsquare/trade/BuyerAsOffererTrade.java
+++ b/core/src/main/java/io/bitsquare/trade/BuyerAsOffererTrade.java
@@ -19,7 +19,7 @@ package io.bitsquare.trade;
import io.bitsquare.offer.Offer;
import io.bitsquare.storage.Storage;
-import io.bitsquare.trade.protocol.trade.buyer.BuyerAsOffererProtocol;
+import io.bitsquare.trade.protocol.trade.BuyerAsOffererProtocol;
import io.bitsquare.trade.states.OffererTradeState;
import io.bitsquare.trade.states.TradeState;
diff --git a/core/src/main/java/io/bitsquare/trade/BuyerAsTakerTrade.java b/core/src/main/java/io/bitsquare/trade/BuyerAsTakerTrade.java
index 6ea1e39840..a59d2887af 100644
--- a/core/src/main/java/io/bitsquare/trade/BuyerAsTakerTrade.java
+++ b/core/src/main/java/io/bitsquare/trade/BuyerAsTakerTrade.java
@@ -20,7 +20,7 @@ package io.bitsquare.trade;
import io.bitsquare.offer.Offer;
import io.bitsquare.p2p.Peer;
import io.bitsquare.storage.Storage;
-import io.bitsquare.trade.protocol.trade.buyer.BuyerAsTakerProtocol;
+import io.bitsquare.trade.protocol.trade.BuyerAsTakerProtocol;
import io.bitsquare.trade.states.TakerTradeState;
import io.bitsquare.trade.states.TradeState;
diff --git a/core/src/main/java/io/bitsquare/trade/SellerAsOffererTrade.java b/core/src/main/java/io/bitsquare/trade/SellerAsOffererTrade.java
index 8989d4cd06..0e08947cd6 100644
--- a/core/src/main/java/io/bitsquare/trade/SellerAsOffererTrade.java
+++ b/core/src/main/java/io/bitsquare/trade/SellerAsOffererTrade.java
@@ -19,7 +19,7 @@ package io.bitsquare.trade;
import io.bitsquare.offer.Offer;
import io.bitsquare.storage.Storage;
-import io.bitsquare.trade.protocol.trade.seller.SellerAsOffererProtocol;
+import io.bitsquare.trade.protocol.trade.SellerAsOffererProtocol;
import io.bitsquare.trade.states.OffererTradeState;
import io.bitsquare.trade.states.TradeState;
diff --git a/core/src/main/java/io/bitsquare/trade/SellerAsTakerTrade.java b/core/src/main/java/io/bitsquare/trade/SellerAsTakerTrade.java
index 2297f61048..0955b21886 100644
--- a/core/src/main/java/io/bitsquare/trade/SellerAsTakerTrade.java
+++ b/core/src/main/java/io/bitsquare/trade/SellerAsTakerTrade.java
@@ -20,7 +20,7 @@ package io.bitsquare.trade;
import io.bitsquare.offer.Offer;
import io.bitsquare.p2p.Peer;
import io.bitsquare.storage.Storage;
-import io.bitsquare.trade.protocol.trade.seller.SellerAsTakerProtocol;
+import io.bitsquare.trade.protocol.trade.SellerAsTakerProtocol;
import io.bitsquare.trade.states.TakerTradeState;
import io.bitsquare.trade.states.TradeState;
diff --git a/core/src/main/java/io/bitsquare/trade/Trade.java b/core/src/main/java/io/bitsquare/trade/Trade.java
index 0639f72211..31814f9042 100644
--- a/core/src/main/java/io/bitsquare/trade/Trade.java
+++ b/core/src/main/java/io/bitsquare/trade/Trade.java
@@ -28,8 +28,8 @@ import io.bitsquare.p2p.MailboxMessage;
import io.bitsquare.p2p.MessageService;
import io.bitsquare.p2p.Peer;
import io.bitsquare.storage.Storage;
+import io.bitsquare.trade.protocol.trade.ProcessModel;
import io.bitsquare.trade.protocol.trade.TradeProtocol;
-import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
import io.bitsquare.trade.states.TradeState;
import io.bitsquare.user.User;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/availability/CheckOfferAvailabilityModel.java b/core/src/main/java/io/bitsquare/trade/protocol/availability/CheckOfferAvailabilityModel.java
index c54ecedcab..4e5df9eb80 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/availability/CheckOfferAvailabilityModel.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/availability/CheckOfferAvailabilityModel.java
@@ -22,7 +22,7 @@ import io.bitsquare.offer.Offer;
import io.bitsquare.p2p.AddressService;
import io.bitsquare.p2p.MessageService;
import io.bitsquare.p2p.Peer;
-import io.bitsquare.trade.protocol.trade.messages.OfferMessage;
+import io.bitsquare.trade.protocol.availability.messages.OfferMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/messages/OfferMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/availability/messages/OfferMessage.java
similarity index 95%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/messages/OfferMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/availability/messages/OfferMessage.java
index 559af3bb56..2b6b779f1f 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/messages/OfferMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/availability/messages/OfferMessage.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.messages;
+package io.bitsquare.trade.protocol.availability.messages;
import io.bitsquare.p2p.Message;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/availability/messages/ReportOfferAvailabilityMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/availability/messages/ReportOfferAvailabilityMessage.java
index 09138a8257..507b250549 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/availability/messages/ReportOfferAvailabilityMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/availability/messages/ReportOfferAvailabilityMessage.java
@@ -17,8 +17,6 @@
package io.bitsquare.trade.protocol.availability.messages;
-import io.bitsquare.trade.protocol.trade.messages.OfferMessage;
-
import java.io.Serializable;
public class ReportOfferAvailabilityMessage extends OfferMessage implements Serializable {
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/BuyerAsOffererProtocol.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/BuyerAsOffererProtocol.java
similarity index 90%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/BuyerAsOffererProtocol.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/BuyerAsOffererProtocol.java
index a034671955..8137a62e77 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/BuyerAsOffererProtocol.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/BuyerAsOffererProtocol.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer;
+package io.bitsquare.trade.protocol.trade;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.MailboxMessage;
@@ -27,25 +27,23 @@ import io.bitsquare.trade.BuyerAsOffererTrade;
import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
-import io.bitsquare.trade.protocol.trade.TradeProtocol;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCommitsPayoutTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessRequestPublishDepositTxMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerVerifiesAndSignsContract;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
-import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
-import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
-import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCommitsPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCreatesAndSignPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCreatesDepositTxInputs;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerProcessPayoutTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerProcessRequestPublishDepositTxMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsDepositTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsFiatTransferStartedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsRequestPayDepositMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSignsAndPublishDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerVerifiesAndSignsContract;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.ProcessRequestDepositTxInputsMessage;
+import io.bitsquare.trade.protocol.trade.tasks.offerer.VerifyTakeOfferFeePayment;
+import io.bitsquare.trade.protocol.trade.tasks.offerer.VerifyTakerAccount;
import io.bitsquare.trade.states.OffererTradeState;
import org.slf4j.Logger;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/BuyerAsTakerProtocol.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/BuyerAsTakerProtocol.java
similarity index 86%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/BuyerAsTakerProtocol.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/BuyerAsTakerProtocol.java
index 694a7695c1..cdaa9dc4f6 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/BuyerAsTakerProtocol.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/BuyerAsTakerProtocol.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer;
+package io.bitsquare.trade.protocol.trade;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.MailboxMessage;
@@ -24,25 +24,23 @@ import io.bitsquare.p2p.MessageHandler;
import io.bitsquare.p2p.Peer;
import io.bitsquare.trade.BuyerAsTakerTrade;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.TradeProtocol;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCommitsPayoutTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessRequestPublishDepositTxMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
-import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerVerifiesAndSignsContract;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
-import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.BroadcastTakeOfferFeeTx;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.VerifyOfferFeePayment;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.VerifyOffererAccount;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCommitsPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCreatesAndSignPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerCreatesDepositTxInputs;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerProcessPayoutTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerProcessRequestPublishDepositTxMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsDepositTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsFiatTransferStartedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSendsRequestPayDepositMessage;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerSignsAndPublishDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.buyer.BuyerVerifiesAndSignsContract;
+import io.bitsquare.trade.protocol.trade.tasks.taker.BroadcastTakeOfferFeeTx;
+import io.bitsquare.trade.protocol.trade.tasks.taker.CreateTakeOfferFeeTx;
+import io.bitsquare.trade.protocol.trade.tasks.taker.VerifyOfferFeePayment;
+import io.bitsquare.trade.protocol.trade.tasks.taker.VerifyOffererAccount;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/models/ProcessModel.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/ProcessModel.java
similarity index 99%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/models/ProcessModel.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/ProcessModel.java
index d5108f8518..fe03147919 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/models/ProcessModel.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/ProcessModel.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.models;
+package io.bitsquare.trade.protocol.trade;
import io.bitsquare.arbitration.ArbitrationRepository;
import io.bitsquare.btc.AddressEntry;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/SellerAsOffererProtocol.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/SellerAsOffererProtocol.java
similarity index 91%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/SellerAsOffererProtocol.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/SellerAsOffererProtocol.java
index 9355c06662..1d5660c45e 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/SellerAsOffererProtocol.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/SellerAsOffererProtocol.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller;
+package io.bitsquare.trade.protocol.trade;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.MailboxMessage;
@@ -27,23 +27,21 @@ import io.bitsquare.trade.SellerAsOffererTrade;
import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
-import io.bitsquare.trade.protocol.trade.TradeProtocol;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsContract;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsPayoutTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsRequestPublishDepositTxMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSignsAndPublishPayoutTx;
-import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
-import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
-import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
+import io.bitsquare.trade.protocol.trade.tasks.offerer.VerifyTakeOfferFeePayment;
+import io.bitsquare.trade.protocol.trade.tasks.offerer.VerifyTakerAccount;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCommitDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCreatesAndSignsContract;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCreatesAndSignsDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessDepositTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessFiatTransferStartedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessRequestPayDepositMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSendsPayoutTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSendsRequestPublishDepositTxMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSignsAndPublishPayoutTx;
import io.bitsquare.trade.states.OffererTradeState;
import org.slf4j.Logger;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/SellerAsTakerProtocol.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/SellerAsTakerProtocol.java
similarity index 88%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/SellerAsTakerProtocol.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/SellerAsTakerProtocol.java
index 5aca206630..dc90e32f6f 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/SellerAsTakerProtocol.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/SellerAsTakerProtocol.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller;
+package io.bitsquare.trade.protocol.trade;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.MailboxMessage;
@@ -24,26 +24,24 @@ import io.bitsquare.p2p.MessageHandler;
import io.bitsquare.p2p.Peer;
import io.bitsquare.trade.SellerAsTakerTrade;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.TradeProtocol;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsContract;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsPayoutTxPublishedMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsRequestPublishDepositTxMessage;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSignsAndPublishPayoutTx;
-import io.bitsquare.trade.protocol.trade.seller.tasks.SendRequestDepositTxInputsMessage;
-import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.BroadcastTakeOfferFeeTx;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.VerifyOfferFeePayment;
-import io.bitsquare.trade.protocol.trade.shared.taker.tasks.VerifyOffererAccount;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCommitDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCreatesAndSignsContract;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerCreatesAndSignsDepositTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessDepositTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessFiatTransferStartedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerProcessRequestPayDepositMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSendsPayoutTxPublishedMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSendsRequestPublishDepositTxMessage;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SellerSignsAndPublishPayoutTx;
+import io.bitsquare.trade.protocol.trade.tasks.seller.SendRequestDepositTxInputsMessage;
+import io.bitsquare.trade.protocol.trade.tasks.taker.BroadcastTakeOfferFeeTx;
+import io.bitsquare.trade.protocol.trade.tasks.taker.CreateTakeOfferFeeTx;
+import io.bitsquare.trade.protocol.trade.tasks.taker.VerifyOfferFeePayment;
+import io.bitsquare.trade.protocol.trade.tasks.taker.VerifyOffererAccount;
import io.bitsquare.trade.states.TakerTradeState;
import org.slf4j.Logger;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/TradeTask.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/TradeTask.java
index b85abe0a17..c0f15efb17 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/TradeTask.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/TradeTask.java
@@ -20,7 +20,6 @@ package io.bitsquare.trade.protocol.trade;
import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/models/TradingPeer.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/TradingPeer.java
similarity index 99%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/models/TradingPeer.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/TradingPeer.java
index 650219d7cc..99bce08f9f 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/models/TradingPeer.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/TradingPeer.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.models;
+package io.bitsquare.trade.protocol.trade;
import io.bitsquare.fiat.FiatAccount;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCommitsPayoutTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCommitsPayoutTx.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCommitsPayoutTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCommitsPayoutTx.java
index 84f2623cea..b42f1449bd 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCommitsPayoutTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCommitsPayoutTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCreatesAndSignPayoutTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCreatesAndSignPayoutTx.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCreatesAndSignPayoutTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCreatesAndSignPayoutTx.java
index 3f5bd9c2bf..5255c1c06d 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCreatesAndSignPayoutTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCreatesAndSignPayoutTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCreatesDepositTxInputs.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCreatesDepositTxInputs.java
similarity index 94%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCreatesDepositTxInputs.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCreatesDepositTxInputs.java
index e52116528c..2313dd138e 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerCreatesDepositTxInputs.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerCreatesDepositTxInputs.java
@@ -15,14 +15,14 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.TradeWalletService;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
+import io.bitsquare.trade.states.StateUtil;
import org.bitcoinj.core.Coin;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerProcessPayoutTxPublishedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerProcessPayoutTxPublishedMessage.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerProcessPayoutTxPublishedMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerProcessPayoutTxPublishedMessage.java
index d939003616..10eb4d6ca2 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerProcessPayoutTxPublishedMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerProcessPayoutTxPublishedMessage.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerProcessRequestPublishDepositTxMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerProcessRequestPublishDepositTxMessage.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerProcessRequestPublishDepositTxMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerProcessRequestPublishDepositTxMessage.java
index 18287049c1..d58f66d588 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerProcessRequestPublishDepositTxMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerProcessRequestPublishDepositTxMessage.java
@@ -15,13 +15,13 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsDepositTxPublishedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsDepositTxPublishedMessage.java
similarity index 95%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsDepositTxPublishedMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsDepositTxPublishedMessage.java
index 5b97bab99c..0d99754dd7 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsDepositTxPublishedMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsDepositTxPublishedMessage.java
@@ -15,14 +15,14 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsFiatTransferStartedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsFiatTransferStartedMessage.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsFiatTransferStartedMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsFiatTransferStartedMessage.java
index 3845554e8f..0104efaf62 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsFiatTransferStartedMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsFiatTransferStartedMessage.java
@@ -15,17 +15,17 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.OffererTrade;
import io.bitsquare.trade.TakerTrade;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import io.bitsquare.trade.states.OffererTradeState;
+import io.bitsquare.trade.states.StateUtil;
import io.bitsquare.trade.states.TakerTradeState;
import org.slf4j.Logger;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsRequestPayDepositMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsRequestPayDepositMessage.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsRequestPayDepositMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsRequestPayDepositMessage.java
index 20571ca5b4..d88a794788 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSendsRequestPayDepositMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSendsRequestPayDepositMessage.java
@@ -15,14 +15,14 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSignsAndPublishDepositTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSignsAndPublishDepositTx.java
similarity index 98%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSignsAndPublishDepositTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSignsAndPublishDepositTx.java
index 05bcd9428e..d0745f08fe 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerSignsAndPublishDepositTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerSignsAndPublishDepositTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.btc.FeePolicy;
import io.bitsquare.common.taskrunner.TaskRunner;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerVerifiesAndSignsContract.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerVerifiesAndSignsContract.java
similarity index 95%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerVerifiesAndSignsContract.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerVerifiesAndSignsContract.java
index 5bbabf2203..a16a443db4 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/BuyerVerifiesAndSignsContract.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/BuyerVerifiesAndSignsContract.java
@@ -15,13 +15,13 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Contract;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
+import io.bitsquare.trade.states.StateUtil;
import io.bitsquare.util.Utilities;
import org.slf4j.Logger;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/ProcessRequestDepositTxInputsMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/ProcessRequestDepositTxInputsMessage.java
similarity index 95%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/ProcessRequestDepositTxInputsMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/ProcessRequestDepositTxInputsMessage.java
index 3eae783f11..f25a8ab70f 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/buyer/tasks/ProcessRequestDepositTxInputsMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/ProcessRequestDepositTxInputsMessage.java
@@ -15,13 +15,13 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.buyer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.buyer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/offerer/tasks/VerifyTakeOfferFeePayment.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/offerer/VerifyTakeOfferFeePayment.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/offerer/tasks/VerifyTakeOfferFeePayment.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/offerer/VerifyTakeOfferFeePayment.java
index b1a9e1b222..a617fe2d90 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/offerer/tasks/VerifyTakeOfferFeePayment.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/offerer/VerifyTakeOfferFeePayment.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.offerer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.offerer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/offerer/tasks/VerifyTakerAccount.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/offerer/VerifyTakerAccount.java
similarity index 94%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/offerer/tasks/VerifyTakerAccount.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/offerer/VerifyTakerAccount.java
index 90a6794c72..8c6c8b3b63 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/offerer/tasks/VerifyTakerAccount.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/offerer/VerifyTakerAccount.java
@@ -15,12 +15,12 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.offerer.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.offerer;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCommitDepositTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCommitDepositTx.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCommitDepositTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCommitDepositTx.java
index 06ffacfbd3..e0272ed543 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCommitDepositTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCommitDepositTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCreatesAndSignsContract.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCreatesAndSignsContract.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCreatesAndSignsContract.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCreatesAndSignsContract.java
index 27e7198165..e421206ca0 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCreatesAndSignsContract.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCreatesAndSignsContract.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Contract;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCreatesAndSignsDepositTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCreatesAndSignsDepositTx.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCreatesAndSignsDepositTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCreatesAndSignsDepositTx.java
index e3509e9c8c..e784fb1268 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerCreatesAndSignsDepositTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerCreatesAndSignsDepositTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.TradeWalletService;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessDepositTxPublishedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessDepositTxPublishedMessage.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessDepositTxPublishedMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessDepositTxPublishedMessage.java
index 5320809d3c..53872b7332 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessDepositTxPublishedMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessDepositTxPublishedMessage.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessFiatTransferStartedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessFiatTransferStartedMessage.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessFiatTransferStartedMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessFiatTransferStartedMessage.java
index 7faf3ada33..731c9834b0 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessFiatTransferStartedMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessFiatTransferStartedMessage.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessRequestPayDepositMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessRequestPayDepositMessage.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessRequestPayDepositMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessRequestPayDepositMessage.java
index c0b3e081e8..59352c1a63 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerProcessRequestPayDepositMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerProcessRequestPayDepositMessage.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSendsPayoutTxPublishedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSendsPayoutTxPublishedMessage.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSendsPayoutTxPublishedMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSendsPayoutTxPublishedMessage.java
index e2f9b37517..a92c08f614 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSendsPayoutTxPublishedMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSendsPayoutTxPublishedMessage.java
@@ -15,14 +15,14 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSendsRequestPublishDepositTxMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSendsRequestPublishDepositTxMessage.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSendsRequestPublishDepositTxMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSendsRequestPublishDepositTxMessage.java
index 1786b8ca18..b53b88cad0 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSendsRequestPublishDepositTxMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSendsRequestPublishDepositTxMessage.java
@@ -15,14 +15,14 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
+import io.bitsquare.trade.states.StateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSignsAndPublishPayoutTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSignsAndPublishPayoutTx.java
similarity index 98%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSignsAndPublishPayoutTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSignsAndPublishPayoutTx.java
index 146fa9e1d8..ffd44b6ace 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SellerSignsAndPublishPayoutTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SellerSignsAndPublishPayoutTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SendRequestDepositTxInputsMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendRequestDepositTxInputsMessage.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SendRequestDepositTxInputsMessage.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendRequestDepositTxInputsMessage.java
index 9a5377cee2..d780be238d 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/seller/tasks/SendRequestDepositTxInputsMessage.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendRequestDepositTxInputsMessage.java
@@ -15,14 +15,14 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.seller.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.seller;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.protocol.trade.StateUtil;
import io.bitsquare.trade.protocol.trade.TradeTask;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
+import io.bitsquare.trade.states.StateUtil;
import javafx.application.Platform;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/BroadcastTakeOfferFeeTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/BroadcastTakeOfferFeeTx.java
similarity index 97%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/BroadcastTakeOfferFeeTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/BroadcastTakeOfferFeeTx.java
index 9333ba1dda..8b848df4bc 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/BroadcastTakeOfferFeeTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/BroadcastTakeOfferFeeTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.taker.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.taker;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.TakerTrade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/CreateTakeOfferFeeTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/CreateTakeOfferFeeTx.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java
index 01ba673b4f..93aa706db2 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/CreateTakeOfferFeeTx.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.taker.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.taker;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.TakerTrade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/VerifyOfferFeePayment.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/VerifyOfferFeePayment.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/VerifyOfferFeePayment.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/VerifyOfferFeePayment.java
index 469724b0de..25f148f3f8 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/VerifyOfferFeePayment.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/VerifyOfferFeePayment.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.taker.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.taker;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/VerifyOffererAccount.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/VerifyOffererAccount.java
similarity index 96%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/VerifyOffererAccount.java
rename to core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/VerifyOffererAccount.java
index 1003a410c6..cad88a4a3b 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/shared/taker/tasks/VerifyOffererAccount.java
+++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/taker/VerifyOffererAccount.java
@@ -15,7 +15,7 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade.shared.taker.tasks;
+package io.bitsquare.trade.protocol.trade.tasks.taker;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/StateUtil.java b/core/src/main/java/io/bitsquare/trade/states/StateUtil.java
similarity index 91%
rename from core/src/main/java/io/bitsquare/trade/protocol/trade/StateUtil.java
rename to core/src/main/java/io/bitsquare/trade/states/StateUtil.java
index 989250bc85..c575998f8c 100644
--- a/core/src/main/java/io/bitsquare/trade/protocol/trade/StateUtil.java
+++ b/core/src/main/java/io/bitsquare/trade/states/StateUtil.java
@@ -15,13 +15,11 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.trade.protocol.trade;
+package io.bitsquare.trade.states;
import io.bitsquare.trade.OffererTrade;
import io.bitsquare.trade.TakerTrade;
import io.bitsquare.trade.Trade;
-import io.bitsquare.trade.states.OffererTradeState;
-import io.bitsquare.trade.states.TakerTradeState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;