just have to finish coding functions