all functions documented