New system now working

Its working pretty well now, still need to add some "current state" type
stuff to it to make sure everything works seamlessly