Sub-mat protocol and implementation
Updated core functions to use matrices protocols
this function to return the object type hinted
Protocol and implementations in the same namespace
Updated processing to protocols; protocols in a different namespace