worked on a few more functions