pass const reference
POD (int, char, int64...) don't need to be passed by reference
add FIXME