First commit. This should be fully functional.