add CoffeeScript implementation