pointers should be const since their addresses won't change