implement push strategy