Learning push pull