various functions should have internal linkage