CoffeeScript port

This PR will merge in the CS port eventually.