diff --git a/Jettriangle/pom.xml b/Jettriangle/pom.xml
index 99aed8c8..4c926c53 100644
--- a/Jettriangle/pom.xml
+++ b/Jettriangle/pom.xml
@@ -43,5 +43,21 @@
2.4
test
-
+
+ com.google.guava
+ guava
+ r05
+
+
+ com.h2database
+ h2
+ 1.4.190
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
diff --git a/Jettriangle/src/main/java/ru/fizteh/fivt/students/Jettriangle/collectionquery/Aggregates.java b/Jettriangle/src/main/java/ru/fizteh/fivt/students/Jettriangle/collectionquery/Aggregates.java
new file mode 100644
index 00000000..544b5b6e
--- /dev/null
+++ b/Jettriangle/src/main/java/ru/fizteh/fivt/students/Jettriangle/collectionquery/Aggregates.java
@@ -0,0 +1,62 @@
+package ru.fizteh.fivt.students.Jettriangle.collectionquery;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Function;
+
+public class Aggregates {
+ public static Function count(Function expression) {
+ return new Count<>(expression);
+ }
+
+ public static Function avg(Function expression) {
+ return new Avg<>(expression);
+ }
+
+ public interface Aggregator extends Function {
+ C apply(List list);
+ }
+
+ public static class Count implements Aggregator {
+
+ private Function function;
+ public Count(Function expression) {
+ this.function = expression;
+ }
+
+ @Override
+ public Integer apply(List list) {
+ Set