this is like my last pr but I tested everything.  SORRY!

and by tested, I mean manually.  no unit tests for now.