generalise `push()` and `send()` methods