push based puppetry