add getAll and relax type of modify to allow use with traversals