diff --git a/harkka3/samson/assets/backgrounds/beach.png b/harkka3/samson/assets/backgrounds/beach.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e5ddd8fae5e7137a6875df4683c9dde3b40f7e3
Binary files /dev/null and b/harkka3/samson/assets/backgrounds/beach.png differ
diff --git a/harkka3/samson/assets/spritesheets/penisSheet.png b/harkka3/samson/assets/spritesheets/penisSheet.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec7e184920c0f44166649c607055e42c3598ced
Binary files /dev/null and b/harkka3/samson/assets/spritesheets/penisSheet.png differ
diff --git a/harkka3/samson/state0.js b/harkka3/samson/state0.js
index 60f68eee0bafdcae8fc9e8d4c69519295a4f7924..567188582edeab00630ff91c7d0b5e09ab26945e 100644
--- a/harkka3/samson/state0.js
+++ b/harkka3/samson/state0.js
@@ -1,29 +1,52 @@
-var demo = {}, centerX = 1500/2, centerY = 1000/2, jorma, speed = 4;
+var demo = {}, centerX = 1500/2, centerY = 1000/2, jorma, speed = 6;
 demo.state0 = function(){};
 demo.state0.prototype = {
     preload: function(){
-        game.load.image('jorma','assets/sprites/penis.png');
+        game.load.spritesheet('jorma','assets/spritesheets/penisSheet.png', 320, 320);
+        game.load.image('beach','assets/backgrounds/beach.png');
     },
     create: function(){
+        game.physics.startSystem(Phaser.Physics.ARCADE);
         game.stage.backgroundColor = '#ffcccc';
         console.log('state0');
         addChangeStateEventListeners();
+        game.world.setBounds(0, 0, 2875, 1000);
         game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
+
+        var beach = game.add.sprite(0, 0, 'beach');
+
         jorma = game.add.sprite(centerX, centerY, 'jorma');
         jorma.anchor.setTo(0.5, 0.5);
+        jorma.scale.setTo(0.5, 0.5);
+        game.physics.enable(jorma);
+        jorma.body.collideWorldBounds = true;
+        jorma.animations.add('walk', [0,1,2]);
+
+        game.camera.follow(jorma);
+        game.camera.deadzone = new Phaser.Rectangle(centerX - 300, 0, 600, 1000);
     },
     update: function(){
         if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) {
+            jorma.scale.setTo(0.5, 0.5);
             jorma.x += speed;
+            jorma.animations.play('walk', 14, true);
         }
         else if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) {
+            jorma.scale.setTo(-0.5, 0.5);
             jorma.x -= speed;
+            jorma.animations.play('walk', 14, true);
+        }
+        else {
+            jorma.animations.stop('walk');
         }
         if (game.input.keyboard.isDown(Phaser.Keyboard.DOWN)) {
             jorma.y += speed;
         }
         else if (game.input.keyboard.isDown(Phaser.Keyboard.UP)) {
             jorma.y -= speed;
+            if(jorma.y < 391){
+                jorma.y = 391;
+            }
         }
     }
 }