Made the abstract matrix factory have proper local variable names, and
returns