added notes to internal_functions to make more clear