Put everything in a src directory, added a lot of documentation.