Added a new function definitions and implementations