diff --git a/ocksumoron/pom.xml b/ocksumoron/pom.xml
index 9dab73c7..67ca2171 100644
--- a/ocksumoron/pom.xml
+++ b/ocksumoron/pom.xml
@@ -19,7 +19,7 @@
junit
junit
- 3.8.1
+ 4.12
test
@@ -38,5 +38,15 @@
jsoup
1.8.3
+
+ com.google.guava
+ guava
+ 18.0
+
+
+ com.h2database
+ h2
+ 1.4.190
+
diff --git a/ocksumoron/src/main/java/ru/fizteh/fivt/students/ocksumoron/collectionquery/Aggregates.java b/ocksumoron/src/main/java/ru/fizteh/fivt/students/ocksumoron/collectionquery/Aggregates.java
new file mode 100644
index 00000000..2297a6cf
--- /dev/null
+++ b/ocksumoron/src/main/java/ru/fizteh/fivt/students/ocksumoron/collectionquery/Aggregates.java
@@ -0,0 +1,63 @@
+package ru.fizteh.fivt.students.ocksumoron.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