First commit. Fully functional. Untested.