adding looping abstract