Inject filters instead of arbitrary factories since they were acting as filters anyway
OCD