You check here that `params` has the right format, but you don't do this later in the `push(...)` function. Do we perform such passed-in argument validations in other places as well?