Added MDM to manage meta data, made some classes abstract to improve
functionality, Improved effeincy in some areas etc