add composition pattern