[add] business layer