added internal documentation