add comments + helper functions