code refaktorisiert und predicate implementiert