add midding function