docs + exported API