add crud function