revising core functions in depth