Initial commit. Much documentation and commenting to add. I'm still experimenting.