diff --git a/README.md b/README.md
index 94b9180..e10c2dc 100644
--- a/README.md
+++ b/README.md
@@ -11,51 +11,57 @@ This library demonstrates the following best practices for using arrays with col
In other words, our array is essentialy one-directional. Changes come from the server into the array, we read them out, we push our local edits to the server, they trickle back into the array.
-Read more about synchronized arrays and this lib on the [Firebase Blog](https://www.firebase.com/blog/).
+Read more about synchronized arrays and this lib on the [Firebase Blog](https://www.firebase.com/blog/2014-05-06-synchronized-arrays.html).
## Installation
-Download the firebase-as-array.min.js file and include it in your HTML:
+Download the [firebase-as-array.min.js](blob/master/firebase-as-array.min.js) file and include it in your HTML:
-
-
+```html
+
+
+```
Or in your node.js project:
- var Firebase = require('firebase');
- var getAsArray = require('./firebase-as-array.js');
+```javascript
+var Firebase = require('firebase');
+var getAsArray = require('./firebase-as-array.js');
- var ref = new Firebase(URL);
- var list = getAsArray(ref);
+var ref = new Firebase(URL);
+var list = getAsArray(ref);
+```
## Usage
- var ref = new Firebase(URL);
+```javascript
+var ref = new Firebase(URL);
- // create a synchronized array
- var list = getAsArray(ref);
+// create a synchronized array
+var list = getAsArray(ref);
- // add a new record
- var ref = list.$add({foo: 'bar'});
+// add a new record
+var ref = list.$add({foo: 'bar'});
- // remove record
- list.$remove( key );
+// remove record
+list.$remove( key );
- // set priority on a record
- list.$move( key, newPriority );
+// set priority on a record
+list.$move( key, newPriority );
- // find position of a key in the list
- list.$indexOf( key );
+// find position of a key in the list
+list.$indexOf( key );
- // find key for a record at position 1
- list[1].$id;
+// find key for a record at position 1
+list[1].$id;
+```
## Limitations
-All the records stored in the array are objects. Primitive values get stored as { '.value': primitive }
+All the records stored in the array are objects. Primitive values get stored as `{ '.value': primitive }`
Does not support IE 8 and below by default. To support these, simply include polyfills for
[Array.prototype.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Polyfill)
@@ -65,54 +71,68 @@ Does not support IE 8 and below by default. To support these, simply include pol
### getAsArray(ref[, eventCallback])
- @param {Firebase} ref
- @param {Function} [callback]
- @returns {Array}
+```
+@param {Firebase} ref
+@param {Function} [callback]
+@returns {Array}
+```
Creates a new array and synchronizes it to the ref provided.
### $id
-The record ID. This is the unique URL key used to store the record in Firebase (the equivalent of firebaseRef.name()).
+The record ID. This is the unique URL key used to store the record in Firebase (the equivalent of `firebaseRef.name()`).
### $indexOf(key)
- @param {String} key the path name for a record to find in the array
- @returns {int} the index of the element in the array or -1 if not found
+```
+@param {String} key the path name for a record to find in the array
+@returns {int} the index of the element in the array or -1 if not found
+```
A convenience method to find the array position of a given key.
### $add(data)
- @param data the data to be put in Firebase as a new child record
- @returns {Firebase} the ref to the newly created record
+```
+@param data the data to be put in Firebase as a new child record
+@returns {Firebase} the ref to the newly created record
+```
Adds a record to Firebase and returns the reference. To obtain its id, use `ref.name()`, assuming `ref` is the variable assigned to the return value.
### $remove(key)
- @param {string} key a record id to be removed locally and remotely
+```
+@param {string} key a record id to be removed locally and remotely
+```
Removes a record locally and from Firebase
### $set(key, data)
- @param {string} key a record id to be replaced
- @param data what goes into it
+```
+@param {string} key a record id to be replaced
+@param data what goes into it
+```
Replaces the value of a record locally and in Firebase
### $update(key, data)
- @param {string} key a record id to be updated
- @param {object} data some keys to be replaced
+```
+@param {string} key a record id to be updated
+@param {object} data some keys to be replaced
+```
Updates the value of a record locally, replacing any keys that are in `data` with the values provided and leaving the rest of the record alone.
### $move(key, newPriority)
- @param {string} key record id to be moved
- @param {string|int} newPriority the sort order to be applied
+```
+@param {string} key record id to be moved
+@param {string|int} newPriority the sort order to be applied
+```
Moves a record locally and in the remote data list.
@@ -120,16 +140,18 @@ Moves a record locally and in the remote data list.
This lib is intended primarily to be an example. However, pull requests will be happily accepted.
- git clone git@github.com:yourname/Firebase.getAsArray
- npm install
- grunt
- grunt watch
- # make your fixes
- # verify tests are at 100%
- grunt make
- git commit -m "your changes"
- git push
- # create a pull request!
+```
+git clone git@github.com:yourname/Firebase.getAsArray
+npm install
+grunt
+grunt watch
+# make your fixes
+# verify tests are at 100%
+grunt make
+git commit -m "your changes"
+git push
+# create a pull request!
+```
## Support