refactoring

- added missing Copyright note
- generated the ALL_BACKENDS map in a Groovier way
- reordered methods: public first then private (in usage order)