diff --git a/src/components/main_window.rs b/src/components/main_window.rs
index 0624f1c..260f04b 100644
--- a/src/components/main_window.rs
+++ b/src/components/main_window.rs
@@ -4,7 +4,6 @@ use super::plates::plate_container::PlateContainer;
use super::tree::Tree;
use super::transfer_menu::TransferMenu;
-
#[function_component]
pub fn MainWindow() -> Html {
html!{
diff --git a/src/components/mod.rs b/src/components/mod.rs
index 6ff64b0..e7265a7 100644
--- a/src/components/mod.rs
+++ b/src/components/mod.rs
@@ -1,4 +1,5 @@
-pub mod plates;
+pub mod states;
pub mod main_window;
pub mod tree;
pub mod transfer_menu;
+pub mod plates;
diff --git a/src/components/plates/source_plate.rs b/src/components/plates/source_plate.rs
index a825e9c..6f3da9f 100644
--- a/src/components/plates/source_plate.rs
+++ b/src/components/plates/source_plate.rs
@@ -1,6 +1,11 @@
#![allow(non_snake_case)]
use yew::prelude::*;
+use yewdux::prelude::*;
+use std::rc::Rc;
+
+use super::super::states::NewTransferState;
+use super::super::transfer_menu::RegionDisplay;
#[derive(PartialEq, Properties)]
pub struct SourcePlateProps {
@@ -13,27 +18,67 @@ pub fn SourcePlate(props: &SourcePlateProps) -> Html {
let m_start_handle: UseStateHandle