misc refactoring
reafctor MatrixRowView and MatrixColumnView to separate classes
misc tidying and overrides