improve support for coffeescript
support coffee-script by preprocessing it; refactoring