From here on, the functions should be private.