Almost done

I need to double check but I think I have all the functions done. There
may be one or two to finish still but I think i'm ready for unit
testing!