Finished the thing, but to a low standard. Print matrix function is still pretty broken