we wrote a lot of the functions but we are not finished yeeeettt