add documentation and description of concepts