first implementation of pause mechanism