add hold functionality