diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..0581e6099baa22a0fba733b0a330b958f991b9f1
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,11 @@
+FROM ubuntu:jammy
+WORKDIR /usr/local/ur_simple_control
+
+# copy repo to workdir
+COPY . .
+
+RUN apt update && apt upgrade
+
+# open up meshcat ports
+# make this a range
+EXPOSE 7000
diff --git a/README.md b/README.md
index 4ca83530c077eacb59e1e328de1436c46138464b..8fb189b80648c4893a3b8d57c078cff983c98f97 100644
--- a/README.md
+++ b/README.md
@@ -13,13 +13,15 @@
   so does pinocchio for the most part. thus almost all the functions used are identical across languages, 
   and so c++ implementations can be looked at to analyse python functionality as well
 - matrix operations are done with Eigen in C++, and NumPy in Python
+
 # libraries used and their purpose
 -------------
 - ur_rtde for the client-side real-time interface for ur robots (we have a UR5e)
 - pinocchio for dynamics intergration, and other robotics-related math on the client side
-- gepetto for visualization (has nice integration with pinocchio)
+- meshcat for visualization (has nice integration with pinocchio)
 - Dockerized ur simulator as a simulator (it's a bad simulator, but it uses the same robot-communication API 
   as the real robot, making coding and testing easier)
+
 # contents of this repository
 -------------
 - basic documentation can be found in the docs directory: official UR documentation on the robot's capabilities
diff --git a/TODOS_2024_09_19 b/TODOS_2024_09_19
new file mode 100644
index 0000000000000000000000000000000000000000..a6257c4bcbb1ddc3ab5a9a2c9dfcf126cbe584d5
--- /dev/null
+++ b/TODOS_2024_09_19
@@ -0,0 +1,50 @@
+the primary goal is to make this as easy to use as possible,
+and that means a docker image that just needs to be built.
+
+goal 1: ease of use
+-----------------------
+make a docker image installing everything
+1. get clik with visualization to work in a ubuntu22 docker
+2. write down the installation process in a Dockerfile
+3. create a single loadable docker image however you can
+
+the secondary goal is to re-do the documentation and
+add the tutorials going from basic linux to python to 
+to minimal robotics to the library itself.
+to make this less painful clean up the code first.
+
+then just do the pareto optimal code rewrite to make it cleaner
+(actually call everything in the step function, maybe finish logging and that's it)
+
+goal 2: clean up the code
+---------------------------
+1. do all reading and updating into the local class in the step() function --> remove the rest
+2. maybe fix logging a bit
+3. stop asap
+
+then finish goal 2 by making the docs & tutorialss
+
+goal 3: documentation and tutorials
+-----------------------------------
+1. documents in text (md/tex) which at least outline the minimal amount of knowledge
+2. linux cli video tutorials
+2. python essentials video tutorials + some tips on how to learn it quicker (use shell etc)
+3. ur_simple_control_library video tutorials, ex. example write circle tracking
+
+set yourself up for research success by using crocoddyl on the real robot,
+i.e. get some experience with the basics with the bonus being you can trust
+ik not to hit the table
+
+goal 4: more controllers
+------------------------
+1. finish adding all ik algorithms
+2. crocoddyl optimal control with obstacle avoidance (manipulator itself + table/floor is enough)
+3. [hard] adjusting the dmp to get back on the path despite external forces 
+   (fix the problem of writing on a non-flat surface/whatever) --> publishable side-project
+
+finally, do what you promised and put this on another robot,
+thereby rendering this something publishable in joss
+
+goal 5: panda/yumi
+----------------
+1. transfer the library to panda or yumi or both
diff --git a/docs/gepetto.md b/docs/gepetto.md
deleted file mode 100644
index db044a23225e77717a884be54610dc43c1b85202..0000000000000000000000000000000000000000
--- a/docs/gepetto.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## visualization with gepetto
-- https://github.com/Gepetto/gepetto-viewer is the link for more info
-- needs to be installed - just pip or apt gepetto-viewer or a similar name(s)
-- it needs to be ran with gepetto-gui before it can be called in code. 
-- for c++ api https://github.com/stack-of-tasks/pinocchio-gepetto-viewer needs to be installed.
-  when compiling with cmake, you need to se the install prefix to /usr,
-  i.e. do  cmake -DCMAKE_INSTALL_PREFIX=/usr when running cmake
diff --git a/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc b/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc
index 0e87eb7a7f7d8001f3804aec246ec258c7d24557..f6eb30f9a3134ffe664f07421d12d9180a5ab800 100644
Binary files a/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc and b/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc differ
diff --git a/python/ur_simple_control/clik/clik_point_to_point.py b/python/ur_simple_control/clik/clik_point_to_point.py
index a442d8157bafa10354200fb2a85b9850c9ea3e2e..bf86a9a5e5d6b42a4452a3151f6baf8bf7a08798 100644
--- a/python/ur_simple_control/clik/clik_point_to_point.py
+++ b/python/ur_simple_control/clik/clik_point_to_point.py
@@ -350,7 +350,7 @@ if you don't care about rotation, make it np.zeros((3,3))
 """
 # add a threshold for the wrench
 def compliantMoveL(args, robot, goal_point):
-    assert type(goal_point) == pin.pinocchio_pywrap.SE3
+#    assert type(goal_point) == pin.pinocchio_pywrap.SE3
     robot.Mgoal = copy.deepcopy(goal_point)
     clik_controller = getClikController(args)
     controlLoop = partial(controlLoopCompliantClik, args, robot)