Possibly resolves #11. (First submit and have questions posted
throughout, review would be good)