Some general purpose abstract classes and interfaces for MATLAB