diff --git a/Github/Data.hs b/Github/Data.hs
--- a/Github/Data.hs
+++ b/Github/Data.hs
@@ -122,6 +122,12 @@
             <*> o .: "id"
   parseJSON _          = fail "Could not build a Comment"
 
+instance ToJSON NewComment where
+  toJSON (NewComment b) = object [ "body" .= b ]
+
+instance ToJSON EditComment where
+  toJSON (EditComment b) = object [ "body" .= b ]
+
 instance FromJSON Diff where
   parseJSON (Object o) =
     Diff <$> o .: "status"
@@ -217,6 +223,26 @@
           <*> o .: "comments"
           <*> o .:? "milestone"
   parseJSON _          = fail "Could not build an Issue"
+
+instance ToJSON NewIssue where
+  toJSON (NewIssue t b a m ls) =
+    object
+    [ "title"     .= t
+    , "body"      .= b
+    , "assignee"  .= a
+    , "milestone" .= m
+    , "labels"    .= ls ]
+
+instance ToJSON EditIssue where
+  toJSON (EditIssue t b a s m ls) =
+    object $ filter notNull $ [ "title" .= t
+                              , "body" .= b
+                              , "assignee" .= a
+                              , "state" .= s
+                              , "milestone" .= m
+                              , "labels" .= ls ]
+    where notNull (_, Null) = False
+          notNull (_, _)    = True
 
 instance FromJSON Milestone where
   parseJSON (Object o) =
diff --git a/Github/Data/Definitions.hs b/Github/Data/Definitions.hs
--- a/Github/Data/Definitions.hs
+++ b/Github/Data/Definitions.hs
@@ -107,6 +107,14 @@
   ,commentId :: Int
 } deriving (Show, Data, Typeable, Eq, Ord)
 
+data NewComment = NewComment {
+   newCommentBody :: String
+} deriving (Show, Data, Typeable, Eq, Ord)
+
+data EditComment = EditComment {
+   editCommentBody :: String
+} deriving (Show, Data, Typeable, Eq, Ord)
+
 data Diff = Diff {
    diffStatus :: String
   ,diffBehindBy :: Int
@@ -194,6 +202,24 @@
   ,issueComments :: Int
   ,issueMilestone :: Maybe Milestone
 } deriving (Show, Data, Typeable, Eq, Ord)
+
+data NewIssue = NewIssue {
+  newIssueTitle :: String
+, newIssueBody :: Maybe String
+, newIssueAssignee :: Maybe String
+, newIssueMilestone :: Maybe Int
+, newIssueLabels :: Maybe [String]
+} deriving (Show, Data, Typeable, Eq, Ord)
+
+data EditIssue = EditIssue {
+  editIssueTitle :: Maybe String
+, editIssueBody :: Maybe String
+, editIssueAssignee :: Maybe String
+, editIssueState :: Maybe String
+, editIssueMilestone :: Maybe Int
+, editIssueLabels :: Maybe [String]
+} deriving  (Show, Data, Typeable, Eq, Ord)
+
 
 data Milestone = Milestone {
    milestoneCreator :: GithubOwner
diff --git a/Github/GitData/Blobs.hs b/Github/GitData/Blobs.hs
new file mode 100644
--- /dev/null
+++ b/Github/GitData/Blobs.hs
@@ -0,0 +1,16 @@
+-- | The API for dealing with git blobs from Github repos, as described in
+-- <http://developer.github.com/v3/git/blobs/>.
+module Github.GitData.Blobs (
+ blob
+,module Github.Data
+) where
+
+import Github.Data
+import Github.Private
+
+-- | Get a blob by SHA1.
+--
+-- > blob "thoughtbot" "paperclip" "bc5c51d1ece1ee45f94b056a0f5a1674d7e8cba9"
+blob :: String -> String -> String -> IO (Either Error Blob)
+blob user repoName sha =
+  githubGet ["repos", user, repoName, "git", "blobs", sha]
diff --git a/Github/Issues.hs b/Github/Issues.hs
--- a/Github/Issues.hs
+++ b/Github/Issues.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE OverloadedStrings #-}
 -- | The issues API as described on <http://developer.github.com/v3/issues/>.
 module Github.Issues (
  issue
@@ -5,11 +6,23 @@
 ,issuesForRepo
 ,issuesForRepo'
 ,IssueLimitation(..)
+
+-- * Modifying Issues
+-- |
+-- Only authenticated users may create and edit issues.
+,GithubAuth(..)
+
+,createIssue
+,newIssue
+,editIssue
+,editOfIssue
 ,module Github.Data
 ) where
 
 import Github.Data
 import Github.Private
+import Data.Aeson.Types
+import qualified Data.Aeson as A
 import Data.List (intercalate)
 import Data.Time.Format (formatTime)
 import System.Locale (defaultTimeLocale)
@@ -84,3 +97,36 @@
 -- > issuesForRepo "thoughtbot" "paperclip" [NoMilestone, OnlyClosed, Mentions "jyurek", Ascending]
 issuesForRepo :: String -> String -> [IssueLimitation] -> IO (Either Error [Issue])
 issuesForRepo = issuesForRepo' Nothing
+
+
+-- Creating new issues.
+
+newIssue :: String -> NewIssue
+newIssue title = NewIssue title Nothing Nothing Nothing Nothing
+
+
+-- |
+-- Create a new issue.
+--
+-- > createIssue (GithubUser (user, password)) user repo
+-- >  (newIssue "some_repo") {...}
+createIssue :: GithubAuth -> String -> String -> NewIssue
+            -> IO (Either Error Issue)
+createIssue auth user repo = githubPost auth ["repos", user, repo, "issues"]
+
+
+-- Editing issues.
+
+editOfIssue :: EditIssue
+editOfIssue = EditIssue Nothing Nothing Nothing Nothing Nothing Nothing
+
+
+-- |
+-- Edit an issue.
+--
+-- > editIssue (GithubUser (user, password)) user repo issue
+-- >  editOfIssue {...}
+editIssue :: GithubAuth -> String -> String -> Int -> EditIssue
+            -> IO (Either Error Issue)
+editIssue auth user repo iss =
+  githubPatch auth ["repos", user, repo, "issues", show iss]
diff --git a/Github/Issues/Comments.hs b/Github/Issues/Comments.hs
--- a/Github/Issues/Comments.hs
+++ b/Github/Issues/Comments.hs
@@ -4,6 +4,14 @@
  comment
 ,comments
 ,comments'
+
+-- * Modifying Comments
+-- |
+-- Only authenticated users may create and edit comments.
+,GithubAuth(..)
+
+,createComment
+,editComment
 ,module Github.Data
 ) where
 
@@ -31,3 +39,27 @@
 comments' auth user repoName issueNumber =
   githubGet' auth ["repos", user, repoName, "issues", show issueNumber, "comments"]
 
+
+
+-- |
+-- Create a new comment.
+--
+-- > createComment (GithubUser (user, password)) user repo issue
+-- >  "some words"
+createComment :: GithubAuth -> String -> String -> Int -> String
+            -> IO (Either Error Comment)
+createComment auth user repo iss body =
+  githubPost auth
+  ["repos", user, repo, "issues", show iss, "comments"] (NewComment body)
+
+
+-- |
+-- Edit a comment.
+--
+-- > editComment (GithubUser (user, password)) user repo commentid
+-- >  "new words"
+editComment :: GithubAuth -> String -> String -> Int -> String
+            -> IO (Either Error Comment)
+editComment auth user repo commid body =
+  githubPatch auth ["repos", user, repo, "issues", "comments", show commid]
+  (EditComment body)
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
 Example Usage
 =============
 
-See the samples in the [samples/](https://github.com/mike-burns/github/tree/master/samples) directory.
+See the samples in the [samples/](https://github.com/fpco/github/tree/master/samples) directory.
 
 Documentation
 =============
@@ -46,7 +46,7 @@
 Contributions
 =============
 
-Please see [CONTRIBUTING.md](https://github.com/mike-burns/github/tree/master/CONTRIBUTING.md) for details on how you can help.
+Please see [CONTRIBUTING.md](https://github.com/fpco/github/blob/master/CONTRIBUTING.md) for details on how you can help.
 
 Copyright
 =========
diff --git a/github.cabal b/github.cabal
--- a/github.cabal
+++ b/github.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.7.0
+Version:             0.7.1
 
 -- A short (one-line) description of the package.
 Synopsis:            Access to the Github API, v3.
@@ -120,6 +120,7 @@
                    Github.GitData.Commits,
                    Github.GitData.References,
                    Github.GitData.Trees,
+                   Github.GitData.Blobs,
                    Github.Issues,
                    Github.Issues.Comments,
                    Github.Issues.Events,
