added type-safe filter and req