Adding SystemManager + AttributeManager now use smart ptr to manipulate attributes