helpers and doc blocks