Stylistic nit: I guess order should be delegate, pattern (matching declaration order).