diff --git a/src/tehtava2.java b/src/tehtava2.java
new file mode 100644
index 0000000000000000000000000000000000000000..5de6939f3928eaf555d2a28d8eff4d02050c572a
--- /dev/null
+++ b/src/tehtava2.java
@@ -0,0 +1,47 @@
+public class Lukuvali <A extends Number, B extends Number>{
+    private A alku;
+    private B loppu;
+
+    public Lukuvali(A alku, B loppu) {
+        this.alku = alku;
+        this.loppu = loppu;
+    }
+    public Lukuvali<Float, Float> kahdensumma(Lukuvali<?, ?> lukuvali) {
+        A alku = getAlku();
+        B loppu = getLoppu();
+        float toinenAlku= (lukuvali.getAlku()).floatValue();
+        float toinenLoppu= (lukuvali.getLoppu()).floatValue();
+        float uusiAlku = alku.floatValue() + toinenAlku;
+        float uusiLoppu = loppu.floatValue() + toinenLoppu;
+        System.out.println("\nlukuvälien alkujen summa: " + uusiAlku);
+        System.out.println("lukuvälien loppujen summa: " + uusiLoppu);
+        Lukuvali<Float, Float> uusiLukuvali = new Lukuvali<Float, Float>(uusiAlku, uusiLoppu);
+        return uusiLukuvali;
+
+    }
+    public Lukuvali<Float, Float> Kertoma(Lukuvali<?, ?> lukuvali) {
+        A alku = getAlku();
+        B loppu = getLoppu();
+        float toinenAlku = (lukuvali.getAlku()).floatValue();
+        float toinenLoppu = (lukuvali.getLoppu()).floatValue();
+        float uusiAlku = alku.floatValue() * toinenAlku;
+        float uusiLoppu = loppu.floatValue() * toinenLoppu;
+        System.out.println("\nlukuvälien alkujen tulo: " + uusiAlku);
+        System.out.println("lukuvälien loppujen tulo: " + uusiLoppu);
+        Lukuvali<Float, Float> uusiLukuvali = new Lukuvali<Float, Float>(uusiAlku, uusiLoppu);
+        return uusiLukuvali;
+    }
+    public A getAlku() {
+        return alku;
+    }
+    public void setAlku(A alku){
+        this.alku = alku;
+    }
+    public B getLoppu(){
+        return loppu;
+    }
+    public void setLoppu(B loppu){
+        this.loppu = loppu;
+    }
+}
+