documentation and internal variables