An attempt for clearer docs and easier api usage