Initial commit, ported js to coffee
Also write tests in coffeescript