Most complete version

still doesn't work even slightly