Dev abstract models

Please define abstraction layer for all node types for model manipulation operations, e.g. 
MethodOperationsAbstractionLayer{
  addCategory
  removeCategory
} etc