diff --git a/Manifest.toml b/Manifest.toml
new file mode 100644
index 0000000000000000000000000000000000000000..83fb0f33ec2cf85416c0bc0aa4da1ca63d2f2443
--- /dev/null
+++ b/Manifest.toml
@@ -0,0 +1,282 @@
+# This file is machine-generated - editing it directly is not advised
+
+[[AssetRegistry]]
+deps = ["Distributed", "JSON", "Pidfile", "SHA", "Test"]
+git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e"
+uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893"
+version = "0.1.0"
+
+[[Base64]]
+uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
+
+[[BinaryProvider]]
+deps = ["Libdl", "SHA"]
+git-tree-sha1 = "c7361ce8a2129f20b0e05a89f7070820cfed6648"
+uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
+version = "0.5.4"
+
+[[CSSUtil]]
+deps = ["Colors", "Compat", "JSON", "Measures", "Pkg", "WebIO"]
+git-tree-sha1 = "ff13fd99e4dd54f56eb064815f843bc992a871a2"
+uuid = "70588ee8-6100-5070-97c1-3cb50ed05fe8"
+version = "0.1.0"
+
+[[CSTParser]]
+deps = ["LibGit2", "Test", "Tokenize"]
+git-tree-sha1 = "437c93bc191cd55957b3f8dee7794b6131997c56"
+uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
+version = "0.5.2"
+
+[[ColorTypes]]
+deps = ["FixedPointNumbers", "Random"]
+git-tree-sha1 = "10050a24b09e8e41b951e9976b109871ce98d965"
+uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
+version = "0.8.0"
+
+[[Colors]]
+deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Printf", "Reexport", "Test"]
+git-tree-sha1 = "9f0a0210450acb91c730b730a994f8eef1d3d543"
+uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
+version = "0.9.5"
+
+[[Compat]]
+deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
+git-tree-sha1 = "84aa74986c5b9b898b0d1acaf3258741ee64754f"
+uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
+version = "2.1.0"
+
+[[DataStructures]]
+deps = ["InteractiveUtils", "OrderedCollections", "Random", "Serialization", "Test"]
+git-tree-sha1 = "ca971f03e146cf144a9e2f2ce59674f5bf0e8038"
+uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
+version = "0.15.0"
+
+[[Dates]]
+deps = ["Printf"]
+uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
+
+[[DelimitedFiles]]
+deps = ["Mmap"]
+uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
+
+[[Distributed]]
+deps = ["Random", "Serialization", "Sockets"]
+uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
+
+[[FileWatching]]
+uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
+
+[[FixedPointNumbers]]
+git-tree-sha1 = "d14a6fa5890ea3a7e5dcab6811114f132fec2b4b"
+uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
+version = "0.6.1"
+
+[[FunctionalCollections]]
+deps = ["Test"]
+git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a"
+uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca"
+version = "0.5.0"
+
+[[HTTP]]
+deps = ["Base64", "Dates", "Distributed", "IniFile", "MbedTLS", "Random", "Sockets", "Test"]
+git-tree-sha1 = "25db0e3f27bd5715814ca7e4ad22025fdcf5cc6e"
+uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
+version = "0.8.0"
+
+[[Hiccup]]
+deps = ["MacroTools", "Test"]
+git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd"
+uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7"
+version = "0.2.2"
+
+[[IniFile]]
+deps = ["Test"]
+git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8"
+uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f"
+version = "0.5.0"
+
+[[Interact]]
+deps = ["CSSUtil", "InteractBase", "JSON", "Knockout", "Observables", "OrderedCollections", "Reexport", "Test", "WebIO", "Widgets"]
+git-tree-sha1 = "f6531bc554990a6659966afcb8f05543c032068b"
+uuid = "c601a237-2ae4-5e1e-952c-7a85b0c7eef1"
+version = "0.10.2"
+
+[[InteractBase]]
+deps = ["Base64", "CSSUtil", "Colors", "Dates", "JSExpr", "JSON", "Knockout", "Observables", "OrderedCollections", "Random", "Test", "WebIO", "Widgets"]
+git-tree-sha1 = "83fc45f21bfec97e5cd56e790f6945497ab0f095"
+uuid = "d3863d7c-f0c8-5437-a7b4-3ae773c01009"
+version = "0.10.1"
+
+[[InteractiveUtils]]
+deps = ["Markdown"]
+uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
+
+[[JSExpr]]
+deps = ["JSON", "MacroTools", "Observables", "Test", "WebIO"]
+git-tree-sha1 = "013bc2143a2e84ea489365cf30db3407deb540c2"
+uuid = "97c1335a-c9c5-57fe-bc5d-ec35cebe8660"
+version = "0.5.0"
+
+[[JSON]]
+deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"]
+git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa"
+uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
+version = "0.20.0"
+
+[[Knockout]]
+deps = ["JSExpr", "JSON", "Observables", "Pkg", "Test", "WebIO"]
+git-tree-sha1 = "5cca7f070f85392cd0f42220c8ea5f7be96dacf4"
+uuid = "bcebb21b-c2e3-54f8-a781-646b90f6d2cc"
+version = "0.2.2"
+
+[[Lazy]]
+deps = ["Compat", "MacroTools", "Test"]
+git-tree-sha1 = "aec38c7e7f255a678af22651c74100e3cd39ea20"
+uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0"
+version = "0.13.2"
+
+[[LibGit2]]
+uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
+
+[[Libdl]]
+uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
+
+[[LinearAlgebra]]
+deps = ["Libdl"]
+uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
+
+[[Logging]]
+uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
+
+[[MacroTools]]
+deps = ["CSTParser", "Compat", "DataStructures", "Test"]
+git-tree-sha1 = "daecd9e452f38297c686eba90dba2a6d5da52162"
+uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
+version = "0.5.0"
+
+[[Markdown]]
+deps = ["Base64"]
+uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
+
+[[MbedTLS]]
+deps = ["BinaryProvider", "Dates", "Distributed", "Libdl", "Random", "Sockets", "Test"]
+git-tree-sha1 = "2d94286a9c2f52c63a16146bb86fd6cdfbf677c6"
+uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
+version = "0.6.8"
+
+[[Measures]]
+deps = ["Test"]
+git-tree-sha1 = "ddfd6d13e330beacdde2c80de27c1c671945e7d9"
+uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e"
+version = "0.3.0"
+
+[[Mmap]]
+uuid = "a63ad114-7e13-5084-954f-fe012c677804"
+
+[[Mux]]
+deps = ["AssetRegistry", "Base64", "HTTP", "Hiccup", "Lazy", "Pkg", "Sockets", "Test", "WebSockets"]
+git-tree-sha1 = "5b41f03d63400c290bab4e1a49fb9ac36de1084a"
+uuid = "a975b10e-0019-58db-a62f-e48ff68538c9"
+version = "0.7.0"
+
+[[Observables]]
+deps = ["Test"]
+git-tree-sha1 = "dc02cec22747d1d10d9f70d8a1c03432b5bfbcd0"
+uuid = "510215fc-4207-5dde-b226-833fc4488ee2"
+version = "0.2.3"
+
+[[OrderedCollections]]
+deps = ["Random", "Serialization", "Test"]
+git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
+uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
+version = "1.1.0"
+
+[[Pidfile]]
+deps = ["FileWatching", "Test"]
+git-tree-sha1 = "1ffd82728498b5071cde851bbb7abd780d4445f3"
+uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307"
+version = "1.1.0"
+
+[[Pkg]]
+deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
+uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
+
+[[Printf]]
+deps = ["Unicode"]
+uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
+
+[[REPL]]
+deps = ["InteractiveUtils", "Markdown", "Sockets"]
+uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
+
+[[Random]]
+deps = ["Serialization"]
+uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
+
+[[Reexport]]
+deps = ["Pkg"]
+git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0"
+uuid = "189a3867-3050-52da-a836-e630ba90ab69"
+version = "0.2.0"
+
+[[Requires]]
+deps = ["Test"]
+git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1"
+uuid = "ae029012-a4dd-5104-9daa-d747884805df"
+version = "0.5.2"
+
+[[SHA]]
+uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
+
+[[Serialization]]
+uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
+
+[[SharedArrays]]
+deps = ["Distributed", "Mmap", "Random", "Serialization"]
+uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
+
+[[Sockets]]
+uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
+
+[[SparseArrays]]
+deps = ["LinearAlgebra", "Random"]
+uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
+
+[[Statistics]]
+deps = ["LinearAlgebra", "SparseArrays"]
+uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
+
+[[Test]]
+deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
+uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
+
+[[Tokenize]]
+deps = ["Printf", "Test"]
+git-tree-sha1 = "3e83f60b74911d3042d3550884ca2776386a02b8"
+uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
+version = "0.5.3"
+
+[[UUIDs]]
+deps = ["Random", "SHA"]
+uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
+
+[[Unicode]]
+uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
+
+[[WebIO]]
+deps = ["AssetRegistry", "Base64", "Compat", "Distributed", "FunctionalCollections", "JSON", "Logging", "Observables", "Random", "Requires", "Sockets", "Test", "UUIDs", "Widgets"]
+git-tree-sha1 = "125dc746e5b36424c6a7e694889a7f3d434a160a"
+uuid = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29"
+version = "0.8.1"
+
+[[WebSockets]]
+deps = ["Base64", "Dates", "Distributed", "HTTP", "Logging", "Random", "Sockets", "Test"]
+git-tree-sha1 = "13f763d38c7a05688938808b49cb29b18b60c8c8"
+uuid = "104b5d7c-a370-577a-8038-80a2059c5097"
+version = "1.5.2"
+
+[[Widgets]]
+deps = ["Colors", "Dates", "Observables", "OrderedCollections", "Test"]
+git-tree-sha1 = "c53befc70c6b91eaa2a9888c2f6ac2d92720a81b"
+uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62"
+version = "0.6.1"
diff --git a/Project.toml b/Project.toml
new file mode 100644
index 0000000000000000000000000000000000000000..fa0d73b0688a96bb8789dcf7678015b64dbb77b5
--- /dev/null
+++ b/Project.toml
@@ -0,0 +1,10 @@
+name = "LabGUI"
+uuid = "31661155-7747-5a32-9846-082300d6a5a6"
+authors = ["Jacob Wikmark"]
+repo = "https://gitlab.control.lth.se/processes/LabGUI.jl/commits/master"
+version = "0.1.0"
+
+[deps]
+Interact = "c601a237-2ae4-5e1e-952c-7a85b0c7eef1"
+Mux = "a975b10e-0019-58db-a62f-e48ff68538c9"
+WebIO = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29"
diff --git a/REQUIRE b/REQUIRE
deleted file mode 100644
index e0b37f1341d946f3d6bbcab758f1340d48c2874e..0000000000000000000000000000000000000000
--- a/REQUIRE
+++ /dev/null
@@ -1,4 +0,0 @@
-julia 0.6
-InteractNext
-WebIO
-Mux
diff --git a/src/LabGUI.jl b/src/LabGUI.jl
index a3bd69bd4b3518f554b216c5d5324e8633e9b74a..7734fa393057bfbbbaa3ffc1bf0c2124c407dab1 100644
--- a/src/LabGUI.jl
+++ b/src/LabGUI.jl
@@ -1,5 +1,5 @@
 module LabGUI
-using WebIO, InteractNext
+using WebIO, Interact
 include("gridmaker.jl")
 include("gui.jl")
 include("construct.jl")
diff --git a/src/construct.jl b/src/construct.jl
index b5e41f33d423e78625c6d3190fc2ead2ef2779e1..a813ee337daffc438d1947701d63d0b504a8dc51 100644
--- a/src/construct.jl
+++ b/src/construct.jl
@@ -5,8 +5,9 @@ function make_widget(binding)
         error("@construct syntax error.")
     end
     sym, expr = binding.args
-    Expr(:(=), esc(sym),
-         Expr(:call, widget, esc(expr), string(sym)))
+    Expr(:block, 
+    	 Expr(:(=), esc(sym), 
+    	 	  Expr(:call, widget, esc(expr), string(sym))))
 end
 
 function display_widgets(widgetvars)
@@ -16,7 +17,7 @@ end
 function map_block(block, symbols)
     lambda = Expr(:(->), Expr(:tuple, symbols...),
                   block)
-    :(map($lambda, $(map(s->:(InteractNext.observe($s)), symbols)...)))
+    :(map($lambda, $(map(s->:(observe($s)), symbols)...)))
 end
 
 function symbols(bindings)
@@ -50,18 +51,27 @@ macro construct(expr)
     end
     syms = symbols(bindings)
 
-    widgets = map(make_widget, bindings)
+	widgets = []
+	for b in bindings
+		w = make_widget(b)
+    	push!(widgets, w)
+    end
+
     dict = Dict(zip(syms, 1:length(syms)))
     quote
-        (Widget_Container([$(widgets...)], $(dict)), WebIO.render($(esc(map_block(block, syms)))))
+        begin
+            $(widgets...)
+            (Widget_Container([$(esc.(syms)...)], $(dict)), WebIO.render($(esc(map_block(block, syms)))))
+        end
     end
 end
 
-widget(x::Range, label="") = slider(x; label=label)
+widget(x::AbstractRange, label="") = slider(x; label=label)
 widget(x::Observable, label="") = x
+widget(x::Widget, label="") = x
 widget(x::WebIO.Node{<:Any}, label="") = x
 widget(x::WebIO.Scope, label="") = x #fix for WebIO update
 widget(x::AbstractVector, label="") = togglebuttons(x, label=label)
-widget(x::Associative, label="") = togglebuttons(x, label=label)
+widget(x::AbstractDict, label="") = togglebuttons(x, label=label)
 widget(x::Bool, label="") = checkbox(x, label=label)
 widget(x::AbstractString, label="") = textbox(x, label=label, typ=AbstractString)
diff --git a/src/gui.jl b/src/gui.jl
index 2033186e95fd89e930aa5925d2dcb3a9db626a4e..ef16b64ddc8e4eebcbfb22942fe0b3fdd530aa56 100644
--- a/src/gui.jl
+++ b/src/gui.jl
@@ -191,6 +191,7 @@ function animate(gui::GUI, t=0.5)
 end
 
 function animate(gui::GUI, s::Union{Symbol, Array}, t=0.5)
+    # println("animation station", s)
     f = updater_function(gui, s)
     heartbeat(f, t)
 end
@@ -207,6 +208,7 @@ function update(gui::GUI, s::Symbol, watchsymbol=:0)
     w = gui.widgets[s]
     if watchsymbol==:0||has_changed(gui, watchsymbol)
         #observe(w).listeners[2](observe(w)[])
+        # This takes too long, can run 1 fps but not even 10 fps
         observe(w)[] = observe(w)[]
     end
 end
diff --git a/test/runtests.jl b/test/runtests.jl
index 9bd8a1a5af0acd23e4488776ba5fd01aa4dbba0f..9ac7a367244e4c1bdd5ae7b91ad023ec1c504447 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -1,8 +1,7 @@
 using LabGUI
 using Observables
-using InteractNext
-using Base.Test
-
+using Interact
+using Test
 
 @testset "Tools" begin
     a = Observables.Observable(5.0)
@@ -10,9 +9,8 @@ using Base.Test
     f(x) = 2*x
     g(x) = x/2
     link!(a,b, f, g)
-    a[] = 3.0
-    @test b[] == 6.0
-
+    a[] = 3.0 
+    @test b[] == 6.0 
     b[] = 10.6
     @test a[] == 5.3
 
@@ -47,11 +45,11 @@ end
 @testset "GUI" begin
     gui = GUI()
     wid1, graphic1 = @construct for dummy in 0:100
-        Node(:div, dummy)
+        node(:div, dummy)
     end
 
-    wid2, graphic2 = @construct for dummybox in checkbox(false)
-        Node(:div, dummybox)
+    wid2, graphic2 = @construct for dummybox = false
+        node(:div, dummybox)
     end
 
     set!(gui, wid1)
@@ -75,17 +73,17 @@ end
 end
 
 
-@testset "Dependencies" begin
-    #testing vue
-    vuenode = Vue.vue(Node(:div))
-    @test typeof(vuenode)<:WebIO.Scope
-    @test typeof(vuenode.dom)<:WebIO.Node
-    @test typeof(vuenode.id)==String
-    #testing interactnext
-    ui = @manipulate for dummy in 1:100
-        WebIO.render(dummy)
-    end
-    @test typeof(ui) <: WebIO.Node{WebIO.DOM}
-    observe(dummy)[] = 80
-    @test observe(dummy)[] == 80
-end
+# @testset "Dependencies" begin
+#     #testing vue
+#     vuenode = Vue.vue(Node(:div))
+#     @test typeof(vuenode)<:WebIO.Scope
+#     @test typeof(vuenode.dom)<:WebIO.Node
+#     @test typeof(vuenode.id)==String
+#     #testing interactnext
+#     ui = @manipulate for dummy in 1:100
+#         WebIO.render(dummy)
+#     end
+#     @test typeof(ui) <: WebIO.Node{WebIO.DOM}
+#     observe(dummy)[] = 80
+#     @test observe(dummy)[] == 80
+# end