add replacement feature