A good swing at most of the functions, still havn't figured out how to test them...