todo: implement remove