Add support to keys in filter()
Add support to keys in map()
Be less strict about return type
Fine-tune exception messages