added remove and fixed update