cleanup exceptions
improve $push
implement $pushAll