Fully working version.