initial working implementation (except you have to kill -9 to stop it