Some refactorings around the Matrix class which have led to some new public methods emerging; these are not yet explicitly covered by tests.