I think these are the functions you will need from me