Finished first draft, untested
tested and working