Major cleanup and documentation.
Added documentation to all types, implementations and objects.
Added folders for images