Documentation

Part 1 of documentation, code commenting and installation