Major internal refactor, drop coffeescript, API unchanged, bump