diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
index 38839cdbdd93e5cb325fa330e7be0c040237a673..8b8d3025ebdff77d28d86b18f86875698f64f8ad 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
@@ -1,5 +1,8 @@
 package de.deadlocker8.budgetmaster.transactions;
 
+import de.deadlocker8.budgetmaster.accounts.AccountService;
+import de.deadlocker8.budgetmaster.categories.CategoryService;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.controller.BaseController;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.transactions.csvImport.*;
@@ -14,8 +17,10 @@ import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.WebRequest;
 
 import java.nio.charset.StandardCharsets;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 @Controller
 @RequestMapping(Mappings.TRANSACTION_IMPORT)
@@ -31,10 +36,16 @@ public class TransactionImportController extends BaseController
 		public static final String TRANSACTION_IMPORT = "transactions/transactionImport";
 		public static final String REDIRECT_IMPORT = "redirect:/transactionImport";
 		public static final String REDIRECT_CANCEL = "redirect:/transactionImport/cancel";
+		public static final String NEW_TRANSACTION_NORMAL = "transactions/newTransactionNormal";
+		public static final String NEW_TRANSACTION_TRANSFER = "transactions/newTransactionTransfer";
 	}
 
-	private static class RequestAttributeNames
+	public static class RequestAttributeNames
 	{
+		private RequestAttributeNames()
+		{
+		}
+
 		public static final String CSV_IMPORT = "csvImport";
 		public static final String CSV_ROWS = "csvRows";
 		public static final String CSV_TRANSACTIONS = "csvTransactions";
@@ -44,12 +55,16 @@ public class TransactionImportController extends BaseController
 
 	private final TransactionService transactionService;
 	private final HelpersService helpers;
+	private final CategoryService categoryService;
+	private final AccountService accountService;
 
 	@Autowired
-	public TransactionImportController(TransactionService transactionService, HelpersService helpers)
+	public TransactionImportController(TransactionService transactionService, HelpersService helpers, CategoryService categoryService, AccountService accountService)
 	{
 		this.transactionService = transactionService;
 		this.helpers = helpers;
+		this.categoryService = categoryService;
+		this.accountService = accountService;
 	}
 
 	@GetMapping
@@ -158,17 +173,51 @@ public class TransactionImportController extends BaseController
 	@GetMapping("/{index}/skip")
 	public String skip(WebRequest request, @PathVariable("index") Integer index)
 	{
-		final Object attribute = request.getAttribute(RequestAttributeNames.CSV_TRANSACTIONS, RequestAttributes.SCOPE_SESSION);
-		if(attribute == null)
+		final Optional<CsvTransaction> transactionOptional = getTransactionByIndex(request, index);
+		if(transactionOptional.isEmpty())
 		{
-			return ReturnValues.REDIRECT_CANCEL;
+			return ReturnValues.REDIRECT_IMPORT;
 		}
 
-		final List<CsvTransaction> csvTransactions = (List<CsvTransaction>) attribute;
-		csvTransactions.get(index).setStatus(CsvTransactionStatus.SKIPPED);
+		transactionOptional.get().setStatus(CsvTransactionStatus.SKIPPED);
 		return ReturnValues.REDIRECT_IMPORT;
 	}
 
+	@GetMapping("/{index}/newTransaction/{type}")
+	public String newTransaction(WebRequest request,
+								 @PathVariable("index") Integer index,
+								 @PathVariable("type") String type,
+								 Model model)
+	{
+		final Optional<CsvTransaction> transactionOptional = getTransactionByIndex(request, index);
+		if(transactionOptional.isEmpty())
+		{
+			return ReturnValues.REDIRECT_IMPORT;
+		}
+
+		final CsvTransaction csvTransaction = transactionOptional.get();
+		csvTransaction.setStatus(CsvTransactionStatus.IMPORTED);
+
+		final Transaction newTransaction = new Transaction();
+		// TODO parse first
+//		newTransaction.setDate(csvTransaction.getDate());
+		newTransaction.setName(csvTransaction.getName());
+		// TODO parse first
+//		newTransaction.setAmount(csvTransaction.getAmount());
+		newTransaction.setIsExpenditure(true);
+		newTransaction.setAccount(helpers.getCurrentAccountOrDefault());
+		newTransaction.setCategory(categoryService.findByType(CategoryType.NONE));
+
+		// TODO use csvTransaction.getDate() instead of debug date
+		transactionService.prepareModelNewOrEdit(model, false, LocalDate.now(), false, newTransaction, accountService.getAllActivatedAccountsAsc());
+
+		if(type.equals("transfer"))
+		{
+			return ReturnValues.NEW_TRANSACTION_TRANSFER;
+		}
+		return ReturnValues.NEW_TRANSACTION_NORMAL;
+	}
+
 	private void removeAllAttributes(WebRequest request)
 	{
 		request.removeAttribute(RequestAttributeNames.CSV_IMPORT, RequestAttributes.SCOPE_SESSION);
@@ -177,4 +226,16 @@ public class TransactionImportController extends BaseController
 		request.removeAttribute(RequestAttributeNames.ERROR_UPLOAD, RequestAttributes.SCOPE_SESSION);
 		request.removeAttribute(RequestAttributeNames.ERROR_UPLOAD_FILE, RequestAttributes.SCOPE_SESSION);
 	}
+
+	private Optional<CsvTransaction> getTransactionByIndex(WebRequest request, Integer index)
+	{
+		final Object attribute = request.getAttribute(RequestAttributeNames.CSV_TRANSACTIONS, RequestAttributes.SCOPE_SESSION);
+		if(attribute == null)
+		{
+			return Optional.empty();
+		}
+
+		final List<CsvTransaction> csvTransactions = (List<CsvTransaction>) attribute;
+		return Optional.of(csvTransactions.get(index));
+	}
 }
\ No newline at end of file
diff --git a/BudgetMasterServer/src/main/resources/static/js/transactionImport.js b/BudgetMasterServer/src/main/resources/static/js/transactionImport.js
new file mode 100644
index 0000000000000000000000000000000000000000..1460c264b8c5b80ea3341c1c6fe284e701bb14fd
--- /dev/null
+++ b/BudgetMasterServer/src/main/resources/static/js/transactionImport.js
@@ -0,0 +1,7 @@
+$(document).ready(function()
+{
+    M.FloatingActionButton.init(document.querySelectorAll('.edit-transaction-button'), {
+        direction: 'left',
+        hoverEnabled: false
+    });
+});
\ No newline at end of file
diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
index e8a9f56dc190c63e0d489a678078a308e461b377..62cacc1cf4230e2664be323274afb4e687a28f15 100644
--- a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
+++ b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
@@ -4,6 +4,7 @@
         <#import "../helpers/validation.ftl" as validation>
         <@header.globals/>
         <@header.header "BudgetMaster - ${locale.getString('menu.transactions.import')}"/>
+        <@header.style "transactions"/>
         <@header.style "transactionImport"/>
         <#import "/spring.ftl" as s>
     </head>
@@ -11,7 +12,7 @@
         <#import "../helpers/navbar.ftl" as navbar>
         <@navbar.navbar "importCSV" settings/>
 
-        <#import "../search/searchMacros.ftl" as searchMacros>
+        <#import "transactionsMacros.ftl" as transactionMacros>
 
         <main>
             <div class="card main-card background-color">
@@ -58,6 +59,7 @@
         <!--  Scripts-->
         <#import "../helpers/scripts.ftl" as scripts>
         <@scripts.scripts/>
+        <script src="<@s.url '/js/transactionImport.js'/>"></script>
     </@header.body>
 </html>
 
@@ -202,6 +204,25 @@
                     <td>${csvTransaction.getName()}</td>
                     <td>${csvTransaction.getAmount()}</td>
                     <td>
+                        <div class="fixed-action-btn edit-transaction-button">
+                            <a class="btn-floating btn-flat waves-effect waves-light no-padding text-default edit-transaction-button-link">
+                                <i class="material-icons">edit</i>
+                            </a>
+                            <ul class="new-transaction-button-list">
+                                <li>
+                                    <a href="<@s.url '/transactionImport/' + csvTransaction?index + '/newTransaction/normal'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.normal"))}</a>
+                                    <a href="<@s.url '/transactionImport/' + csvTransaction?index + '/newTransaction/normal'/>" class="btn-floating btn background-orange"><i class="material-icons">payment</i></a>
+                                </li>
+                                <li>
+                                    <a href="<@s.url '/transactionImport/' + csvTransaction?index + '/newTransaction/transfer'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.transfer"))}</a>
+                                    <a href="<@s.url '/transactionImport/' + csvTransaction?index + '/newTransaction/transfer'/>" class="btn-floating btn background-green-dark"><i class="material-icons">swap_horiz</i></a>
+                                </li>
+                                <li>
+                                    <a href="<@s.url '/transactionImport/' + csvTransaction?index + '/newFromTemplate'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.from.template"))}</a>
+                                    <a href="<@s.url '/transactionImport/' + csvTransaction?index + '/newFromTemplate'/>" class="btn-floating btn background-blue-baby"><i class="material-icons">file_copy</i></a>
+                                </li>
+                            </ul>
+                        </div>
                         <@header.buttonFlat url='/transactionImport/' + csvTransaction?index + '/skip' icon='block' localizationKey='' classes="no-padding text-default button-request-transaction-import-skip"/>
                     </td>
                 </tr>