diff --git a/main.go b/main.go
index 8dea0efac4bea0d7941abb5da00744b4004113c4..856f9af6d9cc99162165dbc8df75f873e809e327 100644
--- a/main.go
+++ b/main.go
@@ -2,13 +2,10 @@ package main
 
 import (
 	"github.com/dtylman/gowd"
+	"github.com/dtylman/gowd/bootstrap"
 	"gitlab.com/elixxir/client/interfaces/contact"
 	"gitlab.com/elixxir/client/single"
-
-	"fmt"
 	"time"
-
-	"github.com/dtylman/gowd/bootstrap"
 )
 
 var password string
@@ -21,9 +18,9 @@ var body *gowd.Element
 
 func main() {
 
-	_, singleMngr = initClient()
+	//_, singleMngr = initClient()
 
-	//creates a new bootstrap fluid container
+	// creates a new bootstrap fluid container
 	body = bootstrap.NewContainer(false)
 
 	// add some elements using the object model
@@ -31,55 +28,61 @@ func main() {
 	row := bootstrap.NewRow(bootstrap.NewColumn(bootstrap.ColumnSmall, 3, div))
 	body.AddElement(row)
 
-	div.AddHTML(`
-	<label for="fname">Ethereum address:</label><br>
-	<input type="text" id="ethaddr" name="ethaddr"><br>
-	<label for="lname">Message:</label><br>
-	<input type="text" id="message" name="message"><br><br>`, nil)
+	row.SetAttribute("style", "font-size:1.5em")
+
+	ethAddr := bootstrap.NewFormInput(bootstrap.InputTypeText, "Ethereum Address:")
+	ethAddr.Element.Kids[1].SetAttribute("style", "font-family:'Roboto Mono', 'Courier New', Courier, monospace;")
+	sendText := bootstrap.NewFormInput(bootstrap.InputTypeText, "Message:")
+
+	div.AddElement(ethAddr.Element)
+	div.AddElement(sendText.Element)
 
 	// add a button
 	btn := bootstrap.NewButton(bootstrap.ButtonPrimary, "Send")
-	btn.OnEvent(gowd.OnClick, btnClicked)
-	row.AddElement(bootstrap.NewColumn(bootstrap.ColumnSmall, 3, bootstrap.NewElement("div", "well", btn)))
-
-	/*
-	// add some other elements from HTML
-	div.AddHTML(`<div class="dropdown">
-	<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
-	<span class="caret"></span></button>
-	<ul class="dropdown-menu" id="dropdown-menu">
-	<li><a href="#">HTML</a></li>
-	<li><a href="#">CSS</a></li>
-	<li><a href="#">JavaScript</a></li>
-	</ul>
-	</div>`, nil)
-	
-	*/
-
-	//start the ui loop
+	btnEvent := func(sender *gowd.Element, event *gowd.EventElement) {
+		btnClicked(sender, event, ethAddr.Element, sendText.Element)
+	}
+	btn.OnEvent(gowd.OnClick, btnEvent)
+	div.AddElement(btn)
+
+	// div.AddHTML(`
+	// <label for="fname">Ethereum address:</label><br>
+	// <input type="text" id="ethaddr" name="ethaddr"><br>
+	// <label for="lname">Message:</label><br>
+	// <input type="text" id="message" name="message"><br><br>`, nil)
+	//
+	// // add a button
+	// btn := bootstrap.NewButton(bootstrap.ButtonPrimary, "Send")
+	// btn.OnEvent(gowd.OnClick, btnClicked)
+	// row.AddElement(bootstrap.NewColumn(bootstrap.ColumnSmall, 3, bootstrap.NewElement("div", "well", btn)))
+
+	// start the ui loop
 	gowd.Run(body)
 }
 
 // happens when the 'start' button is clicked
-func btnClicked(sender *gowd.Element, event *gowd.EventElement) {
+func btnClicked(sender *gowd.Element, event *gowd.EventElement, ethAddr, sendText *gowd.Element) {
+	div := bootstrap.NewElement("div", "well")
+	row := bootstrap.NewRow(bootstrap.NewColumn(bootstrap.ColumnSmall, 3, div))
+	body.AddElement(row)
+
 	// adds test to the body
-	text := body.AddElement(gowd.NewStyledText("Sending message...", gowd.BoldText))
+	text := div.AddElement(gowd.NewStyledText("Sending message...", gowd.BoldText))
 
 	// makes the body stop responding to user events
 	body.Disable()
 
-	ethAddr := body.Find("ethaddr").GetValue()
-	sendText := body.Find("message").GetValue()
+	// Send the message
+	message := ethAddr.GetValue() + ";" + sendText.GetValue()
 
-	//send the message
-	message := fmt.Sprintf("%s:%s",ethAddr,sendText)
+	text.SetText(message)
 
 	// Inline function to print message from client to page, callback for upcoming function
-	replyFunc := func(payload []byte, err error){
+	replyFunc := func(payload []byte, err error) {
 		if err != nil {
-			body.AddHTML(fmt.Sprintf("<textarea readonly style\"width:100%;\">{}</textarea>", err.Error()), nil)
+			text.SetText(err.Error())
 		} else {
-			body.AddHTML(fmt.Sprintf("<textarea readonly style\"width:100%;\">{}</textarea>", string(payload)), nil)
+			text.SetText(string(payload))
 		}
 		sender.SetText("Start")
 		body.RemoveElement(text)
@@ -88,10 +91,10 @@ func btnClicked(sender *gowd.Element, event *gowd.EventElement) {
 
 	err := singleMngr.TransmitSingleUse(botContact, []byte(message),
 		"xxCoinGame", 10, replyFunc, 30*time.Second)
-	if err!=nil{
-		body.AddHTML(fmt.Sprintf("<textarea readonly style\"width:100%;\">{}</textarea>", string(err.Error())), nil)
+	if err != nil {
+		text.SetText(err.Error())
 		sender.SetText("Start")
 		body.RemoveElement(text)
 		body.Enable()
 	}
-}
\ No newline at end of file
+}