itial draft of the functions