can be const and no need to copy