wow it all works, todo: clean up all the mess