metadata feature: made possible to customize by providing custom ProcessRequest method