Reorganize provider files
Simplify macro
Update namespace
Kickass refactoring

Finally the iteration process (fixpoint) I think is useful.