Initial commit to dev branch. Code still nowhere near complete.