Initial commit. Fully working version.