misc refactoring
addProduct improvements
misc refactoring
Better Matrix shape checking
add overrides
another add override
misc refactoring