diff --git a/handsy.cabal b/handsy.cabal
--- a/handsy.cabal
+++ b/handsy.cabal
@@ -1,13 +1,15 @@
 name:          handsy
-version:       0.0.1
+version:       0.0.2
 synopsis:      A DSL to describe common shell operations and interpeters for running them locally and remotely.
 -- description:   
+Homepage:      https://github.com/utdemir/handsy
 license:       BSD3
 author:        Utku Demir
 maintainer:    utdemir@gmail.com
 category:      System
 build-type:    Simple
 cabal-version: >=1.10
+
 
 source-repository head
   type:     git
diff --git a/src/System/Handsy.hs b/src/System/Handsy.hs
--- a/src/System/Handsy.hs
+++ b/src/System/Handsy.hs
@@ -21,9 +21,9 @@
                | WriteFile    String B.ByteString          (() -> k)
              deriving (Functor)
 
-makeFree ''HandsyF
-
 type Handsy = FreeT HandsyF IO
+
+makeFree ''HandsyF
 
 run :: Handsy a -> IO a
 run h = do
diff --git a/src/System/Handsy/Remote.hs b/src/System/Handsy/Remote.hs
--- a/src/System/Handsy/Remote.hs
+++ b/src/System/Handsy/Remote.hs
@@ -32,3 +32,9 @@
   where
     (ssh, sshOpts) = sshCommand opts
     runSsh prg args stdin = run (command ssh (sshOpts ++ prg : args) stdin)
+
+pushFile :: FilePath -> FilePath -> Handsy ()
+pushFile local remote = liftIO (B.readFile local) >>= writeFile remote
+
+pullFile :: FilePath -> FilePath -> Handsy ()
+pullFile remote local = readFile remote >>= liftIO . B.writeFile local
