Third Commit. Not quite finished, but it'll have to wait for tomorrow. Almost done.