pull, push, foreach