Rewrite from scratch

- Providers now belong to a single array. Should be easier to add new
providers (it is easier for me lol).
- Moved icons to 'image/icons'.