use const & instead of value-copy