Modified implementation of pushing functions
Merge branch 'master' into experimental/variadic-functions