using params.pop instead of params.get
- prevent id key from residing in params
- avoid overriding id builtin
- allow backwards compatibility; id, id_