API-zation + tests + docs