starting deciding the functions we need