add comments improve API