* reduce code repetition in providers and request objects
* enable user to specify allowed permissions