 			else undefined
 		return cb new TypeError("Unexpected object type") if clazz is undefined
 		return cb null, new clazz @, object
+
+###*
+ * Fetches a {@link Blob} object from the repository. This is a stricter
+ * variant of {@link #object} - an error will be thrown if object isnt a blob.
+ * @param {String} oid id of blob to be fetched.
+ * @param {Function} cb called when blob has been fetched.
+ * @see #object
+###
 Repository.prototype.blob = (oid, cb) -> @object oid, "blob", cb
+
+###*
+ * Fetches a {@link Commit} object from the repository. This is a stricter
+ * variant of {@link #object} - an error will be thrown if object isnt a commit.
+ * @param {String} oid id of commit to be fetched.
+ * @param {Function} cb called when commit has been fetched.
+ * @see #object
+###
 Repository.prototype.commit = (oid, cb) -> @object oid, "commit", cb
+
+###*
+ * Fetches a {@link Tag} object from the repository. This is a stricter
+ * variant of {@link #object} - an error will be thrown if object isnt a tag.
+ * @param {String} oid id of tag to be fetched.
+ * @param {Function} cb called when tag has been fetched.
+ * @see #object
+###
 Repository.prototype.tag = (oid, cb) -> @object oid, "tag", cb
+
+###*
+ * Fetches a {@link Tree} object from the repository. This is a stricter
+ * variant of {@link #object} - an error will be thrown if object isnt a tree.
+ * @param {String} oid id of tree to be fetched.
+ * @param {Function} cb called when tree has been fetched.
+ * @see #object
+###
 Repository.prototype.tree = (oid, cb) -> @object oid, "tree", cb
+
+###*
+ * Fetches a {@link Reference} object from the repository. This is a stricter 
+ * variant of {@link #object} - an error will be thrown if object isnt a ref.
+ * @param {String} oid id of reference to be fetched.
+ * @param {Function} cb called when reference has been fetched.
+ * @see #object
+###
 Repository.prototype.reference = ->
 	_priv = getPrivate @
 	[name, resolve, cb] = args

 * @class
 * Represents a local Git repository that has been opened by Gitteh. Used to get
 * access to any objects contained within it.
###
Repository = Gitteh.Repository = (nativeRepo) ->
	if nativeRepo not instanceof NativeRepository

		cb: type: "function"
	_priv.native.reference name, resolve, wrapCallback cb, (ref) =>
		cb null, new Reference @, ref

###*
 * Alias of {@link #reference}.
 * @param {String} oid id of reference to be fetched.
 * @param {Function} cb called when reference has been fetched.
 * @see #reference
###
Repository.prototype.ref = Repository.prototype.reference

###*
 * Creates a new reference, which can either by direct or symbolic.
 * @see Reference
###
Repository.prototype.createReference = ->
	_priv = getPrivate @
	[name, target, force, cb] = args
